• Jueves 28 de Marzo de 2024, 17:03

Autor Tema:  C# y ContPaq. Importar Polizas  (Leído 4452 veces)

nachzeher

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
C# y ContPaq. Importar Polizas
« en: Viernes 24 de Agosto de 2012, 20:57 »
0
Microsoft Visual Studio 2010
Sql Server 2005
ContPaq i contabilidad 2012

Hola estoy realizando una sistema contable y me pidieron que las polizas que realice las puede enviar a contpaq.
Estuve buscando informacion y podia importarlas desde un archivo de excel (Af_NG.xls) que tiene unas macros, que viene al instalar contpaq, tambien venia un SDK (unas librerias) y un exe.

intente con las librerias y no pude anadirlas como referencia en c#, luego abri el archivo de excel para ver como la enviaba.
Vi que utilizaba VB en las macros y hacia como referencia a un exe.

intente abrir el archivo de excel en una forma. Si lo cargaba todo bien, pero no podia acceder a las macros.

Utilice el mismo ejecutable que usaba el xls como referencia en c# y ya pude utilizar los metodos y todo. pero me salio un error al asignar el codigo de cuenta (string).
"the server threw an exception (exception from hresult: 0x80010105 (RPC_E_SERVERFAULT))"

Código: C#
  1.  private void btnContpaq_Click(object sender, EventArgs e)
  2.         {
  3.             //this.WebBrowserExcel.OpenFile("C:\\Compac\\Empresas\\Reportes\\Contpaq\\Mis Reportes\\Af_NG.xls");
  4.             SDKCONTPAQNGLib.TSdkPoliza poliza = new SDKCONTPAQNGLib.TSdkPoliza();
  5.             SDKCONTPAQNGLib.TSdkTipoPoliza tpoliza = new SDKCONTPAQNGLib.TSdkTipoPoliza();
  6.             SDKCONTPAQNGLib.TSdkSesion sesion = new SDKCONTPAQNGLib.TSdkSesion();
  7.             SDKCONTPAQNGLib.TSdkMovimientoPoliza movimientosPoliza = new SDKCONTPAQNGLib.TSdkMovimientoPoliza();
  8.             SDKCONTPAQNGLib.TSdkCuenta cuenta = new SDKCONTPAQNGLib.TSdkCuenta();
  9.             SDKCONTPAQNGLib.TSdkEmpresa empresa = new SDKCONTPAQNGLib.TSdkEmpresa();
  10.             SDKCONTPAQNGLib.TSdkControlIVA iva = new SDKCONTPAQNGLib.TSdkControlIVA();
  11.            
  12.  
  13.             int idEmpresa;
  14.            
  15.            
  16.             if (sesion.conexionActiva == 0)
  17.                 sesion.iniciaConexion();
  18.  
  19.             if (sesion.conexionActiva == 1 && sesion.ingresoUsuario == 0)
  20.                 sesion.firmaUsuario();
  21.             if (sesion.conexionActiva == 1 && sesion.ingresoUsuario == 1)
  22.             {
  23.                 sesion.abreEmpresa("ctSAMEX_PRUEBA_SISTEMAS");
  24.  
  25.             }
  26.  
  27.             empresa.setSesion(sesion);
  28.             poliza.setSesion(sesion);
  29.             cuenta.setSesion(sesion);
  30.             tpoliza.setSesion(sesion);
  31.             idEmpresa = empresa.IdEmpresa;
  32.             try
  33.             {
  34.  
  35.                 poliza.iniciarInfo();
  36.                 tpoliza.iniciarInfo();
  37.                 if (tipoComboBox.Text == "Ingresos")
  38.                     tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_INGRESOS;
  39.                 if (tipoComboBox.Text == "Egresos")
  40.                     tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_EGRESOS;
  41.                 if (tipoComboBox.Text == "Diario")
  42.                     tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_DIARIO;
  43.                 if (tipoComboBox.Text == "Orden")
  44.                     tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_ORDEN;
  45.                 poliza.Fecha = Convert.ToDateTime("12/12/2011"); //fechaDateTimePicker.Value;
  46.                 poliza.Tipo = tpoliza.Tipo;
  47.                 poliza.Numero = 114122; //int.Parse(numeroTextBox.Text);
  48.                 poliza.Clase = SDKCONTPAQNGLib.ECLASEPOLIZA.CLASE_AFECTAR;
  49.                 poliza.Impresa = 0;
  50.                 poliza.Concepto = conceptoTextBox.Text;
  51.                 poliza.SistOrigen = SDKCONTPAQNGLib.ESISTORIGEN.ORIG_CONTPAQNG;
  52.                 int contMov = 1;
  53.                 foreach (DataGridViewRow row in polizaDetallesDataGridView.Rows)
  54.                 {
  55.                     if (row.Cells[3].Value != null)
  56.                     {
  57.                         movimientosPoliza.iniciarInfo();
  58.                         movimientosPoliza.NumMovto = contMov;
  59.                         //en la siguiente linea me marca el error
  60.  
  61.                         movimientosPoliza.CodigoCuenta = "111111111111";
  62.                        
  63.                         if (decimal.Parse(row.Cells[6].Value.ToString())>0)
  64.                         {
  65.                             movimientosPoliza.TipoMovto = SDKCONTPAQNGLib.ETIPOIMPORTEMOVPOLIZA.MOVPOLIZA_CARGO;
  66.                             movimientosPoliza.Importe = decimal.Parse(row.Cells[6].Value.ToString());
  67.                         }
  68.                         else
  69.                         {
  70.                             movimientosPoliza.TipoMovto = SDKCONTPAQNGLib.ETIPOIMPORTEMOVPOLIZA.MOVPOLIZA_ABONO;
  71.                             movimientosPoliza.Importe = decimal.Parse(row.Cells[7].Value.ToString());
  72.                         }
  73.                         movimientosPoliza.Concepto = row.Cells[9].Value.ToString();
  74.  
  75.                         int movAgregado=poliza.agregaMovimiento(movimientosPoliza);
  76.                         if (movAgregado == 0)
  77.                             MessageBox.Show("No se pudo agregar Movimiento");
  78.                     }
  79.                 }
  80.                
  81.                 int grabada = poliza.crea();
  82.                 if (grabada == 0)
  83.                     MessageBox.Show("No se pudo grabar " + poliza.UltimoMsjError);
  84.                 else
  85.                     MessageBox.Show("Poliza Grabada con exito");
  86.  
  87.             }
  88.             catch (Exception a)
  89.             { MessageBox.Show(a.Message+" " +poliza.UltimoMsjError); }
  90.             finally
  91.             {
  92.                 sesion.cierraEmpresa();
  93.                 sesion.finalizaConexion();
  94.             }
  95.         }
  96.  

Si alguien ha realizado algo similar, alguna interfaz con contpaq que me pueda ayudar. Mientras no sea generar archivos y luego subirlos desde contpaq.

O si alguien sabe como insertar registros directamente a la BD de contpaq tambien me serviria

ematrix

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re:C# y ContPaq. Importar Polizas
« Respuesta #1 en: Jueves 6 de Septiembre de 2012, 21:02 »
0
Asi como asi


de insertar no creo que se pueda

 he abierto las Tablas del Contapaq he involucra otras tablas a la hora de capturar una poliza.

Saludos