CLR: .Net / Mono / Boo / Otros CLR > C#

 C# y ContPaq. Importar Polizas

(1/1)

nachzeher:
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# --- private void btnContpaq_Click(object sender, EventArgs e)        {            //this.WebBrowserExcel.OpenFile("C:\\Compac\\Empresas\\Reportes\\Contpaq\\Mis Reportes\\Af_NG.xls");            SDKCONTPAQNGLib.TSdkPoliza poliza = new SDKCONTPAQNGLib.TSdkPoliza();            SDKCONTPAQNGLib.TSdkTipoPoliza tpoliza = new SDKCONTPAQNGLib.TSdkTipoPoliza();            SDKCONTPAQNGLib.TSdkSesion sesion = new SDKCONTPAQNGLib.TSdkSesion();            SDKCONTPAQNGLib.TSdkMovimientoPoliza movimientosPoliza = new SDKCONTPAQNGLib.TSdkMovimientoPoliza();            SDKCONTPAQNGLib.TSdkCuenta cuenta = new SDKCONTPAQNGLib.TSdkCuenta();            SDKCONTPAQNGLib.TSdkEmpresa empresa = new SDKCONTPAQNGLib.TSdkEmpresa();            SDKCONTPAQNGLib.TSdkControlIVA iva = new SDKCONTPAQNGLib.TSdkControlIVA();                        int idEmpresa;                                   if (sesion.conexionActiva == 0)                sesion.iniciaConexion();             if (sesion.conexionActiva == 1 && sesion.ingresoUsuario == 0)                sesion.firmaUsuario();            if (sesion.conexionActiva == 1 && sesion.ingresoUsuario == 1)            {                sesion.abreEmpresa("ctSAMEX_PRUEBA_SISTEMAS");             }             empresa.setSesion(sesion);            poliza.setSesion(sesion);            cuenta.setSesion(sesion);            tpoliza.setSesion(sesion);            idEmpresa = empresa.IdEmpresa;            try            {                 poliza.iniciarInfo();                tpoliza.iniciarInfo();                if (tipoComboBox.Text == "Ingresos")                    tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_INGRESOS;                if (tipoComboBox.Text == "Egresos")                    tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_EGRESOS;                if (tipoComboBox.Text == "Diario")                    tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_DIARIO;                if (tipoComboBox.Text == "Orden")                    tpoliza.Tipo = SDKCONTPAQNGLib.ETIPOPOLIZA.TIPO_ORDEN;                poliza.Fecha = Convert.ToDateTime("12/12/2011"); //fechaDateTimePicker.Value;                poliza.Tipo = tpoliza.Tipo;                poliza.Numero = 114122; //int.Parse(numeroTextBox.Text);                poliza.Clase = SDKCONTPAQNGLib.ECLASEPOLIZA.CLASE_AFECTAR;                poliza.Impresa = 0;                poliza.Concepto = conceptoTextBox.Text;                poliza.SistOrigen = SDKCONTPAQNGLib.ESISTORIGEN.ORIG_CONTPAQNG;                int contMov = 1;                foreach (DataGridViewRow row in polizaDetallesDataGridView.Rows)                {                    if (row.Cells[3].Value != null)                    {                        movimientosPoliza.iniciarInfo();                        movimientosPoliza.NumMovto = contMov;                        //en la siguiente linea me marca el error                         movimientosPoliza.CodigoCuenta = "111111111111";                                               if (decimal.Parse(row.Cells[6].Value.ToString())>0)                        {                            movimientosPoliza.TipoMovto = SDKCONTPAQNGLib.ETIPOIMPORTEMOVPOLIZA.MOVPOLIZA_CARGO;                            movimientosPoliza.Importe = decimal.Parse(row.Cells[6].Value.ToString());                        }                        else                        {                            movimientosPoliza.TipoMovto = SDKCONTPAQNGLib.ETIPOIMPORTEMOVPOLIZA.MOVPOLIZA_ABONO;                            movimientosPoliza.Importe = decimal.Parse(row.Cells[7].Value.ToString());                        }                        movimientosPoliza.Concepto = row.Cells[9].Value.ToString();                         int movAgregado=poliza.agregaMovimiento(movimientosPoliza);                        if (movAgregado == 0)                            MessageBox.Show("No se pudo agregar Movimiento");                    }                }                                int grabada = poliza.crea();                if (grabada == 0)                    MessageBox.Show("No se pudo grabar " + poliza.UltimoMsjError);                else                    MessageBox.Show("Poliza Grabada con exito");             }            catch (Exception a)            { MessageBox.Show(a.Message+" " +poliza.UltimoMsjError); }            finally            {                sesion.cierraEmpresa();                sesion.finalizaConexion();            }        } 
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:
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

Navegación

[0] Índice de Mensajes

Ir a la versión completa