Foros del Web » Programación para mayores de 30 ;) » .NET »

C# y Contpaq. Importar polizas

Estas en el tema de C# y Contpaq. Importar polizas en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/08/2012, 13:26
 
Fecha de Ingreso: agosto-2012
Mensajes: 1
Antigüedad: 11 años, 8 meses
Puntos: 0
C# y Contpaq. Importar polizas

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:
 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

Etiquetas: sql, textbox, vb, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:11.