public string EliminarTalonario(int intCodigoTalonario)
        {
            FacturacionDA da      = new FacturacionDA();
            string        mensaje = da.EliminarTalonario(intCodigoTalonario);

            return(mensaje);
        }
Beispiel #2
0
        public bool GuardarFacturacion(FacturacionBE objFacturacion, out string mensaje)
        {
            FacturacionDA objFacturacionDA = new FacturacionDA();

            try
            {
                using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (objFacturacionDA.GuardarFacturacion(objFacturacion, out mensaje))
                    {
                        transaccion.Complete();
                        return(true);
                    }
                    else
                    {
                        transaccion.Dispose();
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #3
0
        public FacturacionBE ObtenerFacturacion(int IdFacturacion, int IdCliente)
        {
            FacturacionDA oFacturacionDA = new FacturacionDA();
            MonedaDA      oMonedaDA      = new MonedaDA();

            try
            {
                FacturacionBE objFacturacion = oFacturacionDA.ObtenerFacturacion(IdFacturacion, IdCliente);
                MonedaBE      objMoneda      = oMonedaDA.ObtenerMonedaPredeterminada();

                List <MonedaFacturacionBE> LstMonedaFacturacion = oFacturacionDA.ListarMonedaFacturacion(objFacturacion.IdFacturacion);

                if (!LstMonedaFacturacion.Any(mf => mf.IdMoneda.Equals(objMoneda.IdMoneda)))
                {
                    LstMonedaFacturacion.Add(new MonedaFacturacionBE {
                        Moneda = objMoneda
                    });
                }

                objFacturacion.lstMonedaFacturacion = LstMonedaFacturacion.OrderByDescending(mf => mf.Moneda.Predeteminado).ToList();
                return(objFacturacion);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                oFacturacionDA = null;
            }
        }
        /* Inicio OT7999*/
        /// <summary>
        /// Llama al método ObtenerTipoCambio de acceso a datos.
        /// </summary>
        /// <param name="strFecha">Fecha de proceso</param>
        /// <returns>Registro de tipo de cambio</returns>
        public DataTable ObtenerTipoCambio(string strFecha)
        {
            FacturacionDA da = new FacturacionDA();
            DataTable     ObtenerTipoCambio = da.ObtenerTipoCambio(strFecha);

            return(ObtenerTipoCambio);
        }
        public void IngresarDetalle(int id_comprobante, string descripcion,
                                    string cuenta, string afectoImpuesto, double importe, string user)
        {
            FacturacionDA da = new FacturacionDA();

            da.IngresarDetalle(id_comprobante, descripcion,
                               cuenta, afectoImpuesto, importe, user);
        }
        public DataSet ObtenerTalonario(string strCodigo)
        {
            DataSet       ds = new DataSet();
            FacturacionDA da = new FacturacionDA();

            ds.Tables.Add(da.ObtenerTalonario(strCodigo));
            return(ds);
        }
        public string InsertarCliente(string strRuc, string txtRazonSocial, string txtDireccion,
                                      string strDistrito, string strProvincia, string strDepartamento, string codigoUsuario)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.InsertarCliente(strRuc, txtRazonSocial, txtDireccion,
                                      strDistrito, strProvincia, strDepartamento, codigoUsuario));
        }
        public void ActualizarDetalle(int id_comprobante, int orden_detalle, string descripcion,
                                      string cuenta, string afectoImpuesto, double importe, string user)
        {
            FacturacionDA da = new FacturacionDA();

            da.ActualizarDetalle(id_comprobante, orden_detalle, descripcion,
                                 cuenta, afectoImpuesto, importe, user);
        }
        public DataTable ListarTalonarios(string strTipo, string strOrden)
        {
            FacturacionDA da = new FacturacionDA();

            //FacturacionDA da = new FacturacionDA();
            //da.Server = "ServidorPrem_Banco";
            //da.Database = "BDPrem_Banco";
            return(da.ListarTalonarios(strTipo, strOrden));
        }
        public string ActualizarComprobante(string accion, int codigo, string tipoComprobante, string moneda, DateTime fecha,
                                            string ruc, string proceso, string expediente, string concepto, string tipoDocRel, string NumDocRel,
                                            DateTime fechaDocRel, string estado, string impreso, string enviado, string afecto, string glosa,
                                            int cantidad, double precioUnitario, double subTotal, double igv, double total, string codigoUsuario,
                                            string uuid)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ActualizarComprobante(accion, codigo, tipoComprobante, moneda, fecha, ruc, proceso, expediente,
                                            concepto, tipoDocRel, NumDocRel, fechaDocRel, estado, impreso, enviado, afecto, glosa, cantidad, precioUnitario,
                                            subTotal, igv, total, codigoUsuario, uuid));
        }
        public string ActualizarComprobanteDetalle(string strRuc, string strRazonSocial, string strDireccion, string strDistrito,
                                                   string strProvincia, string strDepartamento, string accion, int codigo, string tipoComprobante, string moneda, DateTime fechaEmision,
                                                   string ruc, string proceso, string expediente, string concepto, string tipoDocRel, string numDocRel, DateTime fechaDocRel,
                                                   string estado, string impreso, string enviado, string afecto, string glosa, int cantidad, double precioUnitario, double subTotal,
                                                   double igv, double total, string codigoUsuario, string uuid, List <DetalleFactura> listDetalle)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ActualizarComprobanteDetalle(strRuc, strRazonSocial, strDireccion, strDistrito, strProvincia, strDepartamento,
                                                   accion, codigo, tipoComprobante, moneda, fechaEmision, ruc, proceso, expediente, concepto, tipoDocRel, numDocRel, fechaDocRel,
                                                   estado, impreso, enviado, afecto, glosa, cantidad, precioUnitario, subTotal, igv, total, codigoUsuario, uuid, listDetalle));
        }
Beispiel #12
0
        public List <MonedaFacturacionBE> ListarMonedaFacturacion(int IdFactura)
        {
            FacturacionDA oFacturacionDA = new FacturacionDA();

            try
            {
                return(oFacturacionDA.ListarMonedaFacturacion(IdFactura));
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                oFacturacionDA = null;
            }
        }
Beispiel #13
0
        public List <FacturacionBE> ListarFacturaciones(int IdCliente)
        {
            FacturacionDA oFacturacionDA = new FacturacionDA();

            try
            {
                return(oFacturacionDA.ListarFacturaciones(IdCliente));
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                oFacturacionDA = null;
            }
        }
        public DataTable ObtenerCliente(string ruc)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ObtenerCliente(ruc));
        }
        public string ValidarRango(string strTipoComprobante, string strSerie, string strInicio, string strFinal)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ValidarRango(strTipoComprobante, strSerie, strInicio, strFinal));
        }
 public FacturacionBO()
 {
     this.facturacionDA = new FacturacionDA();
 }
        public DataTable DameEstadoSAP(string strCodigo, string strItem)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ListaParametros(strCodigo, strItem));
        }
        //OT7349 INI
        public DataTable ObtenerTablaGeneral(string codigoTabla)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ObtenerTablaGeneral(codigoTabla));
        }
        //OT7349 FIN

        public string EnviarComprobante(string tipoComprobante, string serie, string numero, string codigoUsuario)
        {
            FacturacionDA da = new FacturacionDA();

            ParametrosDA parametroDA = new ParametrosDA();

            DataTable dt          = null;
            string    rutaApp     = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            string    rutaModelo  = rutaApp + ConfigurationSettings.AppSettings[ConstantesING.RUTA_MODELO];
            string    rutaArchivo = rutaApp + ConfigurationSettings.AppSettings[ConstantesING.RUTA_ARCHIVOS];

            switch (tipoComprobante)
            {
            case "01":
                dt = da.ObtenerFacturaParaEnvio(serie, numero);
                break;

            case "03":
                dt = da.ObtenerBoletaParaEnvio(serie, numero);
                break;

            case "07":
                dt = da.ObtenerNCParaEnvio(serie, numero);
                break;
            }

            string destinoCsv       = rutaArchivo + ConfigurationSettings.AppSettings[tipoComprobante + "csv"];
            string destinoRespuesta = rutaArchivo + ConfigurationSettings.AppSettings[tipoComprobante + "respuesta"];

            string flagAfectoIGV = dt.Rows[0]["FLAG_AFECTOIGV"].ToString();

            DataTable dtParametro         = parametroDA.ObtenerValoresParametros(ConstantesING.TABLA_MODELO, tipoComprobante + "-" + flagAfectoIGV);
            string    nombreArchivoModelo = dtParametro.Rows[0]["CAMPO1"].ToString();

            //FileStream modelo = File.Open(rutaModelo + nombreArchivoModelo, FileMode.Open);
            StreamReader modelo          = new StreamReader(rutaModelo + nombreArchivoModelo);
            string       contenidoModelo = modelo.ReadToEnd();

            //Reemplazando valores en el modelo
            string fechaEmision        = dt.Rows[0]["FECHA_EMISION"].ToString();
            string numeroDocumento     = dt.Rows[0]["NUMERO_DOCUMENTO"].ToString();
            string tipoDocumento       = dt.Rows[0]["TIPO_DOCUMENTO"].ToString();
            string moneda              = dt.Rows[0]["MONEDA"].ToString();
            string igv                 = Convert.ToDecimal(dt.Rows[0]["IGV"]).ToString("#0.00");
            string subTotal            = Convert.ToDecimal(dt.Rows[0]["VALOR_VENTA"]).ToString("#0.00");
            string total               = Convert.ToDecimal(dt.Rows[0]["TOTAL"]).ToString("#0.00");
            string docCliente          = dt.Rows[0]["DOC_CLIENTE"].ToString();
            string tipoDocCliente      = dt.Rows[0]["TIPO_DOC_CLIENTE"].ToString();
            string razonSocial         = dt.Rows[0]["RAZON_SOCIAL"].ToString();
            string ubigeo              = dt.Rows[0]["UBIGEO"].ToString();
            string codigoPostal        = dt.Rows[0]["CODIGO_POSTAL"].ToString();
            string direccionCliente    = dt.Rows[0]["DIRECCION_CLIENTE"].ToString();
            string departamentoCliente = dt.Rows[0]["DEP_CLIENTE"].ToString();
            string provinciaCliente    = dt.Rows[0]["PRO_CLIENTE"].ToString();
            string distritoCliente     = dt.Rows[0]["DIS_CLIENTE"].ToString();
            string pais                = dt.Rows[0]["PAIS_CLIENTE"].ToString();
            string correo              = dt.Rows[0]["CORREO_CLIENTE"].ToString();
            string cantidad            = dt.Rows[0]["CANTIDAD"].ToString();
            string descripcion         = dt.Rows[0]["DESCRIPCION"].ToString();
            string porcIgv             = dt.Rows[0]["PORC_IGV"].ToString();
            string tipoDocRelacionado  = dt.Rows[0]["TIPO_DOCREL"].ToString();
            //OT 8365 INI
            string numDocRelacionado = tipoDocRelacionado == "01" ? "F" : "B";

            //OT 8365 FIN
            numDocRelacionado = numDocRelacionado + dt.Rows[0]["NUMERO_DOCREL"].ToString();
            string   tipoNC     = dt.Rows[0]["TIPO_NC"].ToString();
            string   glosa      = dt.Rows[0]["GLOSA"].ToString();
            NumLetra nl         = new NumLetra();
            string   montoTexto = nl.Convertir(dt.Rows[0]["TOTAL"].ToString(), moneda == "PEN"? "Nuevos Soles": "Dólares americanos", true, tipoDocumento);
            string   unidad     = "UN";

            //OT7999 INI
            string montoDetraccion      = string.Empty;
            string porcentajeDetraccion = string.Empty;
            string numeroBancoNancion   = string.Empty;
            string detracMontoTotal     = string.Empty;

            string codTabScotiabankMN  = string.Empty;
            string codItemScotiabankMN = string.Empty;

            string codTabScotiabankCCI  = string.Empty;
            string codItemScotiabankCCI = string.Empty;

            string cuentaScotiabankMN  = string.Empty;
            string cuentaScotiabankCCI = string.Empty;

            string codTabScotiabankMNTexto  = string.Empty;
            string codItemScotiabankMNTexto = string.Empty;

            string codTabScotiabankCCITexto  = string.Empty;
            string codItemScotiabankCCITexto = string.Empty;

            string textoScotiabankMN  = string.Empty;
            string textoScotiabankCCI = string.Empty;

            string textoCuentasScotiabank = string.Empty;

            /*Cargando los valores adicionales para las facturas*/
            if (tipoComprobante.Equals(ConstantesING.TIPO_DOCUMENTO_FACTURA))
            {
                double dTotal      = Convert.ToDouble(dt.Rows[0]["TOTAL"]);
                double dDetraccion = Convert.ToDouble(dt.Rows[0]["MONTO_DETRACCION"]);

                if (dDetraccion != 0) //Se ha calculado la detraccion
                {
                    montoDetraccion      = Convert.ToDecimal(dt.Rows[0]["MONTO_DETRACCION"]).ToString("#0.00");
                    porcentajeDetraccion = Convert.ToDecimal(dt.Rows[0]["PORCENTAJE_DETRACCION"]).ToString("#0.00");

                    //Cargando el numero de banco de la nacion.
                    string    strCodigoBancoNacion = ConstantesING.CODIGO_NUMERO_BANCO_NACION;
                    string    strNumeroBancoNacion = ConstantesING.NUMERO_BANCO_NACION;
                    DataTable dtNumeroBancoNacion  = ObtenerDatosParametro(strCodigoBancoNacion, strNumeroBancoNacion);

                    if (dtNumeroBancoNacion.Rows.Count > 0)
                    {
                        if (dtNumeroBancoNacion.Rows[0]["Descripcion"] != DBNull.Value)
                        {
                            numeroBancoNancion = dtNumeroBancoNacion.Rows[0]["Descripcion"].ToString();
                        }
                        else
                        {
                            //se sigue procesando??
                        }
                    }
                    else
                    {
                        //se sigue procesando??
                    }

                    double dDetracMontoTotal = dTotal - dDetraccion;
                    detracMontoTotal = dDetracMontoTotal.ToString("#0.00");
                }
            }

            if (tipoComprobante.Equals(ConstantesING.TIPO_DOCUMENTO_FACTURA) || tipoComprobante.Equals(ConstantesING.TIPO_DOCUMENTO_BOLETA))
            {
                if (moneda == "PEN")
                {
                    //soles
                    codTabScotiabankMN  = ConstantesING.CODIGO_SCOTIABANK_SOLES_MN;
                    codItemScotiabankMN = ConstantesING.SCOTIABANK_SOLES_MN;

                    codTabScotiabankCCI  = ConstantesING.CODIGO_SCOTIABANK_SOLES_CCI;
                    codItemScotiabankCCI = ConstantesING.SCOTIABANK_SOLES_CCI;

                    codTabScotiabankMNTexto  = ConstantesING.CODIGO_SCOTIABANK_SOLES_MN_TEXTO;
                    codItemScotiabankMNTexto = ConstantesING.SCOTIABANK_SOLES_MN_TEXTO;

                    codTabScotiabankCCITexto  = ConstantesING.CODIGO_SCOTIABANK_SOLES_CCI_TEXTO;
                    codItemScotiabankCCITexto = ConstantesING.SCOTIABANK_SOLES_CCI_TEXTO;
                }
                else
                {
                    //dolares
                    codTabScotiabankMN  = ConstantesING.CODIGO_SCOTIABANK_DOLARES_MN;
                    codItemScotiabankMN = ConstantesING.SCOTIABANK_DOLARES_MN;

                    codTabScotiabankCCI  = ConstantesING.CODIGO_SCOTIABANK_DOLARES_CCI;
                    codItemScotiabankCCI = ConstantesING.SCOTIABANK_DOLARES_CCI;

                    codTabScotiabankMNTexto  = ConstantesING.CODIGO_SCOTIABANK_DOLARES_MN_TEXTO;
                    codItemScotiabankMNTexto = ConstantesING.SCOTIABANK_DOLARES_MN_TEXTO;

                    codTabScotiabankCCITexto  = ConstantesING.CODIGO_SCOTIABANK_DOLARES_CCI_TEXTO;
                    codItemScotiabankCCITexto = ConstantesING.SCOTIABANK_DOLARES_CCI_TEXTO;
                }

                DataTable dtCuentaScotiabankMN = ObtenerDatosParametro(codTabScotiabankMN, codItemScotiabankMN);

                if (dtCuentaScotiabankMN.Rows.Count > 0)
                {
                    if (dtCuentaScotiabankMN.Rows[0]["Descripcion"] != DBNull.Value)
                    {
                        cuentaScotiabankMN = dtCuentaScotiabankMN.Rows[0]["Descripcion"].ToString();
                    }
                    else
                    {
                        //se sigue procesando??
                    }
                }
                else
                {
                    //se sigue procesando??
                }

                DataTable dtCuentaScotiabankCCI = ObtenerDatosParametro(codTabScotiabankCCI, codItemScotiabankCCI);

                if (dtCuentaScotiabankCCI.Rows.Count > 0)
                {
                    if (dtCuentaScotiabankCCI.Rows[0]["Descripcion"] != DBNull.Value)
                    {
                        cuentaScotiabankCCI = dtCuentaScotiabankCCI.Rows[0]["Descripcion"].ToString();
                    }
                    else
                    {
                        //se sigue procesando??
                    }
                }
                else
                {
                    //se sigue procesando??
                }

                DataTable dtScotiabankTextoMN = ObtenerDatosParametro(codTabScotiabankMNTexto, codItemScotiabankMNTexto);

                if (dtScotiabankTextoMN.Rows.Count > 0)
                {
                    if (dtScotiabankTextoMN.Rows[0]["Descripcion"] != DBNull.Value)
                    {
                        textoScotiabankMN = dtScotiabankTextoMN.Rows[0]["Descripcion"].ToString();
                    }
                    else
                    {
                        //se sigue procesando??
                    }
                }
                else
                {
                    //se sigue procesando??
                }

                DataTable dtScotiabankTextoCCI = ObtenerDatosParametro(codTabScotiabankCCITexto, codItemScotiabankCCITexto);

                if (dtScotiabankTextoCCI.Rows.Count > 0)
                {
                    if (dtScotiabankTextoCCI.Rows[0]["Descripcion"] != DBNull.Value)
                    {
                        textoScotiabankCCI = dtScotiabankTextoCCI.Rows[0]["Descripcion"].ToString();
                    }
                    else
                    {
                        //se sigue procesando??
                    }
                }
                else
                {
                    //se sigue procesando??
                }

                //cuentaScotiabankMN = "Scotiabank Cuenta Corriente MN " + cuentaScotiabankMN;
                cuentaScotiabankMN = textoScotiabankMN + " " + cuentaScotiabankMN;
                //cuentaScotiabankCCI = "CCI: " + cuentaScotiabankCCI;
                cuentaScotiabankCCI = textoScotiabankCCI + " " + cuentaScotiabankCCI;

                textoCuentasScotiabank = cuentaScotiabankMN + " " + cuentaScotiabankCCI;
            }
            //OT7999 FIN

            string usuarioSOL  = ConfigurationSettings.AppSettings["UsuarioSol"];
            string passwordSOL = ConfigurationSettings.AppSettings["ClaveSol"];

            string contenidoArchivo = contenidoModelo.Replace("{FECHA_EMISION}", fechaEmision)
                                      .Replace("{NUMERO_DOCUMENTO}", numeroDocumento)
                                      .Replace("{TIPO_DOCUMENTO}", tipoDocumento)
                                      .Replace("{MONEDA}", moneda)
                                      .Replace("{IGV}", igv)
                                      .Replace("{TOTAL}", total)
                                      .Replace("{VALOR_VENTA}", subTotal)
                                      //OT 7999 INI
                                      .Replace("{DETRAC_MONTO}", montoDetraccion)
                                      .Replace("{DETRAC_PORCENTAJE}", porcentajeDetraccion)
                                      .Replace("{DETRAC_NUM_BANCO}", numeroBancoNancion)
                                      .Replace("{DETRAC_MONTO_TOTAL}", detracMontoTotal)
                                      //OT 7999 FIN
                                      .Replace("{DOC_CLIENTE}", docCliente)
                                      .Replace("{TIPO_DOC_CLIENTE}", tipoDocCliente)
                                      .Replace("{RAZON_SOCIAL}", razonSocial)
                                      .Replace("{UBIGEO_CLIENTE}", ubigeo)
                                      .Replace("{DIRECCION_CLIENTE}", direccionCliente)
                                      .Replace("{DEP_CLIENTE}", departamentoCliente)
                                      .Replace("{PRO_CLIENTE}", provinciaCliente)
                                      .Replace("{DIS_CLIENTE}", distritoCliente)
                                      .Replace("{PAIS_CLIENTE}", pais)
                                      .Replace("{CORREO_CLIENTE}", correo)
                                      .Replace("{MONTO_TEXTO}", montoTexto)
                                      //OT 7999 INI
                                      .Replace("{SCOTIABANK}", textoCuentasScotiabank)
                                      //OT 7999 FIN
                                      .Replace("{UNIDAD}", unidad)
                                      .Replace("{CANTIDAD}", cantidad)
                                      .Replace("{DESCRIPCION_DETALLE}", descripcion)
                                      .Replace("{PORC_IGV}", porcIgv)
                                      .Replace("{NUM_DOC_REL}", numDocRelacionado)
                                      .Replace("{TIP_DOC_REL}", tipoDocRelacionado)
                                      .Replace("{TIPO_AFECTACION}", tipoNC)
                                      .Replace("{GLOSA}", glosa)
                                      .Replace("{USUARIO}", usuarioSOL)
                                      .Replace("{CLAVE}", passwordSOL);

            string       rutaArchivoCompleta = destinoCsv + numeroDocumento + ".csv";
            StreamWriter sw = new StreamWriter(rutaArchivoCompleta);

            sw.Write(contenidoArchivo);
            sw.Close();

            string rutaRespuesta = destinoRespuesta;

            //File.Move(rutaArchivoCompleta, rutaArchivoCompleta.Replace(".txt", ".csv"));

            string usuarioServicio  = ConfigurationSettings.AppSettings["UsuarioServicio"];
            string passwordServicio = ConfigurationSettings.AppSettings["ClaveServicio"];

            string respuesta = string.Empty;

            switch (tipoComprobante)
            {
            case "01":
                respuesta = EfactService.EnviarFactura(usuarioServicio, passwordServicio, rutaArchivoCompleta, rutaRespuesta, numeroDocumento, dt.Rows[0]);
                break;

            case "03":
                respuesta = EfactService.EnviarBoleta(usuarioServicio, passwordServicio, rutaArchivoCompleta, rutaRespuesta, numeroDocumento, dt.Rows[0]);
                break;

            case "07":
                respuesta = EfactService.EnviarNotaCredito(usuarioServicio, passwordServicio, rutaArchivoCompleta, rutaRespuesta, numeroDocumento, dt.Rows[0]);
                break;
            }

            if (dt.Rows[0]["FLAG_ENVIADO"].ToString().Equals(ConstantesING.SI))
            {
                facturacionDA.Server   = Conexiones.ServidorPremBanco13;
                facturacionDA.Database = Conexiones.BaseDeDatosPremBanco13;
                decimal idComprobante = Convert.ToDecimal(dt.Rows[0]["ID_COMPROBANTE"]);
                facturacionDA.CrearConexion();
                facturacionDA.AbrirConexion();
                facturacionDA.AbrirTransaccion();
                try
                {
                    facturacionDA.ActualizarEstadoEnvio(idComprobante, codigoUsuario);
                    facturacionDA.CommitTransaccion();
                }
                catch (Exception ex)
                {
                    facturacionDA.RollbackTransaccion();
                }
            }

            return(respuesta);
        }
        public int EliminarComprobanteDetalle(int id_Comprobante, int cod_Detalle)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.EliminarComprobanteDetalle(id_Comprobante, cod_Detalle));
        }
        public string EliminarComprobante(string strCodigo, string strEstado, string strCodigoUsuario)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.EliminarComprobante(strCodigo, strEstado, strCodigoUsuario));
        }
        public DataTable ListarComprobanteDetalle()
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ListarComprobanteDetalle());
        }
        //public DataTable ListarMonedas(string strCodigo, string strItem)
        //{
        //    FacturacionDA dt = new FacturacionDA();
        //    return (dt.ListaParametros(strCodigo, strItem));
        //}

        //public DataTable ListarTipoDocumento(string strCodigo, string strItem)
        //{
        //    FacturacionDA dt = new FacturacionDA();
        //    return (dt.ListaParametros(strCodigo, strItem));
        //}
        #endregion
        public DataTable ListarComprobantes(string strTipoComprobante, string strSerie, string strOrden)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ListarComprobantes(strTipoComprobante, strSerie, strOrden));
        }
        public string InsertarTalonario(string strTipo, string strSerie, int intInicio, int intFin, string strEstado, string strUsuario)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.InsertarTalonario(strTipo, strSerie, intInicio, intFin, strEstado, strUsuario));
        }
Beispiel #25
0
        /// <summary>
        /// Método que se encarga de generar los asientos contables a partir de la selección del usuario.
        /// </summary>
        /// <param name="lvAsientos">Objeto ListViewItem que contienen los asientos que posiblemente desea el usuario que se generem</param>
        /// <param name="usuario">Usuario responsable de la creación de los asientos.</param>
        public void GenerarAsientos(System.Windows.Forms.ListView lvAsientos, string usuario, bool sapActivo)
        {
            ParametrosDA parametroDA     = new ParametrosDA();
            string       estadoEjecutado = parametroDA.ObtenerValoresParametros("ESTEJE", "ESTEJE").Rows[0]["CAMPO1"].ToString();

            FacturacionDA facturacionDA = new FacturacionDA();

            facturacionDA.Server   = Conexiones.ServidorPremBanco13;
            facturacionDA.Database = Conexiones.BaseDeDatosPremBanco13;
            facturacionDA.CrearConexion();
            facturacionDA.AbrirConexion();
            facturacionDA.AbrirTransaccion();

            da.Server   = INGFondos.Constants.Conexiones.ServidorSAP;
            da.Database = INGFondos.Constants.Conexiones.BaseDeDatosSAP;
            SqlConnection cn = da.GetConnection2();

            cn.Open();
            SqlTransaction trans       = cn.BeginTransaction();
            Asiento        asiento     = new Asiento();
            string         host        = Dns.GetHostName();
            IPHostEntry    ip          = Dns.GetHostEntry(host);
            string         direccionIP = ip.AddressList[0].ToString();

            string glosaVT_ING       = string.Empty;
            string glosaVT_CRA       = string.Empty;
            string descripcionVT_ING = string.Empty;
            string descripcionVT_CRA = string.Empty;

            Hashtable   ht = new Hashtable();
            Comprobante comprobanteAsiento = null;

            try
            {
                DataTable dtParametroGlosas = parametroDA.ObtenerValoresParametros(ConstantesING.TABLA_COMPROBANTES, ConstantesING.GLOSA_ASIENTO_INGRESOS);
                glosaVT_ING = dtParametroGlosas.Rows[0]["CAMPO3"].ToString();

                dtParametroGlosas = parametroDA.ObtenerValoresParametros(ConstantesING.TABLA_COMPROBANTES, ConstantesING.GLOSA_ASIENTO_COMISIONES);
                glosaVT_CRA       = dtParametroGlosas.Rows[0]["CAMPO3"].ToString();

                dtParametroGlosas = parametroDA.ObtenerValoresParametros(ConstantesING.TABLA_COMPROBANTES, ConstantesING.DESCRIPCION_ASIENTO_INGRESOS);
                descripcionVT_ING = dtParametroGlosas.Rows[0]["CAMPO3"].ToString();

                dtParametroGlosas = parametroDA.ObtenerValoresParametros(ConstantesING.TABLA_COMPROBANTES, ConstantesING.DESCRIPCION_ASIENTO_COMISIONES);
                descripcionVT_CRA = dtParametroGlosas.Rows[0]["CAMPO3"].ToString();

                DataTable dtCabecerasTipo = null;
                DataTable dtDetallesTipo  = null;

                dtCabecerasTipo = da.ObtenerAsientoTipoCabecera(cn, trans);
                dtDetallesTipo  = da.ObtenerAsientoTipoDetalle(cn, trans);

                DataRow   drCabeceraTipo = null;
                DataRow[] drDetallesTipo = null;
                DataRow   drDetalleTipo  = null;

                int codigoAsiento = 0;

                StringBuilder filtro = null;
                //OT7999 INI
                //setear dblPorcentajeDetraccion, si es posible usar un metodo propio
                bool   valorDetraccionHallado = ObtenerDetraccion();
                double montoSoles             = 0;
                //OT7999 FIN

                foreach (ListViewItem item in lvAsientos.CheckedItems)
                {
                    Asiento.LISTA_ASIENTORow datosAsiento = (Asiento.LISTA_ASIENTORow)item.Tag;
                    decimal cantidadSubDetalle            = 0;
                    for (int j = 1; j <= 5; j++)
                    {
                        if (Convert.ToDecimal(datosAsiento["MONTO" + j.ToString()]) != 0)
                        {
                            cantidadSubDetalle++;
                        }
                    }

                    filtro = new StringBuilder();
                    filtro.Append("DESCRIPCION = '" + datosAsiento.TIPO_ASIENTO + "'");
                    filtro.Append(" AND MONEDA_DOCUMENTO = '" + datosAsiento.MONEDA + "'");
                    if (datosAsiento.FONDO != "")
                    {
                        filtro.Append(" AND FONDO = '" + datosAsiento.FONDO + "'");
                    }

                    drCabeceraTipo = dtCabecerasTipo.Select(filtro.ToString(), "CODIGO_ASIENTO")[0];
                    codigoAsiento  = Convert.ToInt32(drCabeceraTipo["CODIGO_ASIENTO"]);
                    drDetallesTipo = dtDetallesTipo.Select("CODIGO_ASIENTO = " + codigoAsiento.ToString());

                    string generaAsiento = null;
                    string referencia    = null;
                    generaAsiento = datosAsiento.IsID_OPERACIONNull() || datosAsiento.ID_OPERACION == "" ? (datosAsiento.IsFONDONull() || datosAsiento.FONDO == "" ? drCabeceraTipo["DESCRIPCION"].ToString().Trim() + datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd") + datosAsiento.MONEDA : datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd") + datosAsiento.FONDO) : drCabeceraTipo["DESCRIPCION"].ToString().Trim() + datosAsiento.ID_OPERACION;
                    referencia    = generaAsiento; //datosAsiento.IsID_OPERACIONNull() || datosAsiento.ID_OPERACION == "" ? datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd") + "|" + generaAsiento : generaAsiento;
                    if (!datosAsiento.IsUUIDNull() && datosAsiento.UUID.Trim() != "" && datosAsiento.ESTADO != estadoEjecutado)
                    {
                        da.EliminarAsientoAntiguo(datosAsiento.UUID, cn, trans);
                    }

                    int    idComprobante         = 0;
                    string referenciaComprobante = string.Empty;

                    //LOGICA DE GENERACION DE FACTURA
                    if (datosAsiento.TIPO_ASIENTO == ConstantesING.TIPO_ASIENTO_INGRESO || datosAsiento.TIPO_ASIENTO == ConstantesING.TIPO_ASIENTO_COMISION)
                    {
                        comprobanteAsiento         = new Comprobante();
                        comprobanteAsiento.Cliente = new Cliente();
                        asiento.CLIENTE.ImportRow(datosAsiento);
                        comprobanteAsiento.Cliente.TipoDocumento = asiento.CLIENTE[0].TIPO_DOCUMENTO;
                        comprobanteAsiento.Cliente.CodigoCliente = asiento.CLIENTE[0].CODIGO_CLIENTE;
                        comprobanteAsiento.Cliente.RazonSocial   = asiento.CLIENTE[0].RAZON_SOCIAL.Replace(",", "");
                        comprobanteAsiento.Cliente.Direccion     = asiento.CLIENTE[0].DIRECCION;
                        comprobanteAsiento.Cliente.Distrito      = asiento.CLIENTE[0].DISTRITO;
                        comprobanteAsiento.Cliente.Ciudad        = asiento.CLIENTE[0].PROVINCIA;
                        comprobanteAsiento.Cliente.Departamento  = asiento.CLIENTE[0].DEPARTAMENTO;
                        comprobanteAsiento.Cliente.IdPais        = Convert.ToInt32(asiento.CLIENTE[0].ID_PAIS);
                        comprobanteAsiento.Cliente.Pais          = asiento.CLIENTE[0].CODIGO_PAIS;
                        if (comprobanteAsiento.Cliente.IdPais.ToString().Equals(ConstantesING.CODIGO_PAIS_PERU))
                        {
                            comprobanteAsiento.Cliente.IdDepartamento = Convert.ToInt32(asiento.CLIENTE[0].ID_DEPARTAMENTO);
                            comprobanteAsiento.Cliente.IdCiudad       = Convert.ToInt32(asiento.CLIENTE[0].ID_CIUDAD);
                            comprobanteAsiento.Cliente.IdDistrito     = Convert.ToInt32(asiento.CLIENTE[0].ID_DISTRITO);
                            comprobanteAsiento.Cliente.Departamento   = asiento.CLIENTE[0].DEPARTAMENTO;
                            comprobanteAsiento.Cliente.Ciudad         = asiento.CLIENTE[0].PROVINCIA;
                            comprobanteAsiento.Cliente.Distrito       = asiento.CLIENTE[0].DISTRITO;
                            comprobanteAsiento.Cliente.Ubigeo         = asiento.CLIENTE[0].UBIGEO;
                            comprobanteAsiento.Cliente.CodigoPostal   = "";
                        }
                        else
                        {
                            comprobanteAsiento.Cliente.IdDepartamento = 0;
                            comprobanteAsiento.Cliente.IdCiudad       = 0;
                            comprobanteAsiento.Cliente.IdDistrito     = 0;
                            comprobanteAsiento.Cliente.Departamento   = "";
                            comprobanteAsiento.Cliente.Ciudad         = "";
                            comprobanteAsiento.Cliente.Distrito       = "";
                            comprobanteAsiento.Cliente.Ubigeo         = "";
                            comprobanteAsiento.Cliente.CodigoPostal   = asiento.CLIENTE[0].CODIGO_POSTAL;
                        }
                        comprobanteAsiento.Cliente.Correo  = asiento.CLIENTE[0].CORREO;
                        comprobanteAsiento.Cliente.Usuario = usuario;

                        facturacionDA.RegistrarCliente(comprobanteAsiento.Cliente);
                        asiento.CLIENTE.Clear();
                        #region CODIGO COMENTADO
                        //DataTable dtInfoCliente = facturacionDA.ObtenerCliente(datosAsiento.CODIGO_CLIENTE);
                        //if (dtInfoCliente.Rows.Count == 0)
                        //{
                        //    asiento.CLIENTE.ImportRow(datosAsiento);
                        //    facturacionDA.InsertarCliente(asiento.CLIENTE[0].CODIGO_CLIENTE,
                        //        asiento.CLIENTE[0].RAZON_SOCIAL, asiento.CLIENTE[0].DIRECCION,
                        //        asiento.CLIENTE[0].DISTRITO, asiento.CLIENTE[0].PROVINCIA,
                        //        asiento.CLIENTE[0].DEPARTAMENTO, usuario);
                        //    asiento.CLIENTE.Clear();
                        //}
                        //else
                        //{
                        //    //asiento.CLIENTE.ImportRow(dtInfoCliente.Rows[0]);
                        //    //deberia actualizarse
                        //}
                        #endregion
                        //UNA VEZ OBTENIDO EL CLIENTE, PREPARAR LA DATA DEL COMPROBANTE Y DE SU DETALLE
                        Asiento.COMPROBANTERow comprobante = asiento.COMPROBANTE.NewCOMPROBANTERow();
                        comprobante.CODIGO_CLIENTE = datosAsiento.CODIGO_CLIENTE;
                        string descripcionComprobante = string.Empty;

                        switch (datosAsiento.TIPO_ASIENTO)
                        {
                        case ConstantesING.TIPO_ASIENTO_INGRESO:
                            comprobante.TIPO_DOCUMENTO = ConstantesING.TIPO_DOCUMENTO_FACTURA;
                            comprobante.COD_CONCEPTO   = datosAsiento.MONEDA == "PEN" ? ConstantesING.CONCEPTO_INGRESO_SOLES : ConstantesING.CONCEPTO_INGRESO_DOLARES;
                            comprobante.GLOSA          = glosaVT_ING;
                            descripcionComprobante     = descripcionVT_ING;

                            comprobanteAsiento.TipoDocumento  = ConstantesING.TIPO_DOCUMENTO_FACTURA;
                            comprobanteAsiento.CodigoConcepto = datosAsiento.MONEDA == "PEN" ? ConstantesING.CONCEPTO_INGRESO_SOLES : ConstantesING.CONCEPTO_INGRESO_DOLARES;
                            comprobanteAsiento.Glosa          = glosaVT_ING;
                            descripcionComprobante            = descripcionVT_ING;

                            break;

                        case ConstantesING.TIPO_ASIENTO_COMISION:
                            comprobante.TIPO_DOCUMENTO = ConstantesING.TIPO_DOCUMENTO_BOLETA;
                            comprobante.COD_CONCEPTO   = datosAsiento.MONEDA == "PEN" ? ConstantesING.CONCEPTO_COMISION_SOLES : ConstantesING.CONCEPTO_COMISION_DOLARES;
                            comprobante.GLOSA          = glosaVT_CRA;
                            descripcionComprobante     = descripcionVT_CRA;

                            comprobanteAsiento.TipoDocumento  = ConstantesING.TIPO_DOCUMENTO_BOLETA;
                            comprobanteAsiento.CodigoConcepto = datosAsiento.MONEDA == "PEN" ? ConstantesING.CONCEPTO_COMISION_SOLES : ConstantesING.CONCEPTO_COMISION_DOLARES;
                            comprobanteAsiento.Glosa          = glosaVT_CRA;
                            descripcionComprobante            = descripcionVT_CRA;

                            break;
                        }
                        if (!datosAsiento.IsUUIDNull() && datosAsiento.UUID.Equals(""))
                        {
                            //OT 7349 INI
                        }
                        else
                        {
                            DataTable dtComprobante2 = facturacionDA.ObtenerComprobantePorUUID(datosAsiento.UUID);

                            asiento.COMPROBANTE.ImportRow(dtComprobante2.Rows[0]);

                            Comprobante comprobanteAntiguo = new Comprobante();
                            comprobanteAntiguo.IdComprobante = Convert.ToInt32(asiento.COMPROBANTE.Rows[0]["ID_COMPROBANTE"].ToString().Trim());
                            comprobanteAntiguo.Usuario       = usuario;

                            facturacionDA.AnularComprobante(comprobanteAntiguo);
                            asiento.COMPROBANTE.Rows.Remove(asiento.COMPROBANTE[0]);
                            #region CODIGO_COMENTADO
                            //facturacionDA.EliminarComprobante(asiento.COMPROBANTE.Rows[0]["ID_COMPROBANTE"].ToString().Trim(), ConstantesING.ESTADO_INACTIVO, usuario);

                            //facturacionDA.ActualizarComprobante(ConstantesING.ACCION_ACTUALIZAR, asiento.COMPROBANTE[0].ID_COMPROBANTE,
                            //    asiento.COMPROBANTE[0].TIPO_DOCUMENTO, asiento.COMPROBANTE[0].MONEDA, asiento.COMPROBANTE[0].FECHA_EMISION,
                            //    asiento.COMPROBANTE[0].CODIGO_CLIENTE, "", "", asiento.COMPROBANTE[0].COD_CONCEPTO,
                            //    "", "", Convert.ToDateTime("01/01/1900"), ConstantesING.ESTADO_ACTIVO, ConstantesING.NO, ConstantesING.NO, ConstantesING.SI,
                            //    asiento.COMPROBANTE[0].GLOSA, 1, asiento.COMPROBANTE[0].PRECIO_UNITARIO,
                            //    asiento.COMPROBANTE[0].VALOR_VENTA, asiento.COMPROBANTE[0].IGV, asiento.COMPROBANTE[0].TOTAL, usuario, "");
                            //facturacionDA.ActualizarDetalle(asiento.COMPROBANTE[0].ID_COMPROBANTE, 1, string.Format(descripcionComprobante, datosAsiento.FONDO, datosAsiento.TEXTO1, datosAsiento.TEXTO2),
                            //    null, ConstantesING.SI, datosAsiento.SUBF, usuario);
                            //referenciaComprobante = dtComprobante.Rows[0]["SERIE"].ToString() + "-" + dtComprobante.Rows[0]["NUMERO"].ToString();
                            //if (!datosAsiento.IsID_OPERACIONNull() && datosAsiento.TIPO_ASIENTO == "VT_CRA")
                            //{
                            //    ht.Add(datosAsiento.ID_OPERACION, referenciaComprobante);
                            //}
                            #endregion
                        }
                        //OT 7349 FIN

                        //OT7999 INI
                        //comprobanteAsiento.Total = datosAsiento.TOTALF;
                        //datosAsiento.TOTALF -- de tipo double

                        if (comprobanteAsiento.TipoDocumento.Equals(ConstantesING.TIPO_DOCUMENTO_FACTURA))
                        {
                            //se calcula la detraccion sólo si el documento es Factura
                            bool tipoCambioHallado = setearTipoCambio(datosAsiento.FECHA_PROCESO);
                            montoSoles = 0;

                            if (datosAsiento.MONEDA != "PEN")
                            {
                                //dolares, convertir a soles
                                //bool tipoCambioHallado = setearTipoCambio();
                                if (!tipoCambioHallado)
                                {
                                    MessageBox.Show("No existe el valor del tipo de cambio para la fecha.", "Comprobantes");
                                    //salir del proceso...
                                }
                                else
                                {
                                    montoSoles = datosAsiento.TOTALF * tipoCambio;
                                }
                            }
                            else
                            {
                                montoSoles = datosAsiento.TOTALF;
                            }

                            if (montoSoles >= 700)
                            {
                                //calcular detraccion
                                //txtMontoDetrac.Text = (double.Parse(txtTotal.Text) * (dblPorcentajeDetraccion / 100)).ToString("0.00");
                                if (!valorDetraccionHallado)
                                {
                                    MessageBox.Show("No existe el valor del porcentaje de detracción.", "Comprobantes");
                                    //salir del proceso...
                                }
                                else
                                {
                                    comprobanteAsiento.PorcentajeDetraccion = dblPorcentajeDetraccion;
                                    //comprobanteAsiento.MontoDetraccion = montoSoles * (dblPorcentajeDetraccion / 100);
                                    comprobanteAsiento.MontoDetraccion = datosAsiento.TOTALF * (dblPorcentajeDetraccion / 100);
                                }
                            }
                        }
                        else
                        {
                            //No es factura
                            comprobanteAsiento.PorcentajeDetraccion = 0;
                            comprobanteAsiento.MontoDetraccion      = 0;
                        }
                        //OT7999 FIN

                        comprobanteAsiento.Moneda                     = datosAsiento.MONEDA == "PEN" ? "S" : "D";
                        comprobanteAsiento.FechaEmision               = datosAsiento.FECHA_PROCESO;
                        comprobanteAsiento.Cliente.CodigoCliente      = datosAsiento.CODIGO_CLIENTE;
                        comprobanteAsiento.Proceso                    = "";
                        comprobanteAsiento.Expediente                 = "";
                        comprobanteAsiento.TipoDocumentoRelacionado   = "";
                        comprobanteAsiento.NumeroDocumentoRelacionado = "";
                        comprobanteAsiento.FechaDocumentoRelacionado  = Convert.ToDateTime("01/01/1900");
                        comprobanteAsiento.Estado                     = ConstantesING.ESTADO_ACTIVO;
                        comprobanteAsiento.FlagImpresion              = ConstantesING.NO;
                        comprobanteAsiento.FlagEnviado                = ConstantesING.NO;
                        comprobanteAsiento.FlagAfectoIgv              = ConstantesING.SI;
                        comprobanteAsiento.Glosa           = comprobante.GLOSA;
                        comprobanteAsiento.Cantidad        = 1;
                        comprobanteAsiento.ValorVenta      = datosAsiento.SUBF;
                        comprobanteAsiento.PrecioUnitario  = datosAsiento.SUBF;
                        comprobanteAsiento.Igv             = datosAsiento.IGVF;
                        comprobanteAsiento.Total           = datosAsiento.TOTALF;
                        comprobanteAsiento.Usuario         = usuario;
                        comprobanteAsiento.TipoNotaCredito = "";

                        facturacionDA.RegistrarComprobante(comprobanteAsiento);

                        comprobanteAsiento.ListaDetalle = new List <DetalleFactura>();
                        DetalleFactura detalle = new DetalleFactura();
                        detalle.id_comprobante = comprobanteAsiento.IdComprobante;
                        detalle.descripcion    = string.Format(descripcionComprobante, datosAsiento.FONDO, datosAsiento.TEXTO1, datosAsiento.TEXTO2);
                        detalle.cuenta         = "";
                        detalle.afectoImpuesto = ConstantesING.SI;
                        detalle.importe        = datosAsiento.SUBF;

                        facturacionDA.RegistrarDetalleComprobante(detalle, usuario);
                        referenciaComprobante = comprobanteAsiento.Serie + "-" + comprobanteAsiento.Numero;
                        if (!datosAsiento.IsID_OPERACIONNull() && datosAsiento.TIPO_ASIENTO == "VT_CRA")
                        {
                            ht.Add(datosAsiento.ID_OPERACION, referenciaComprobante);
                        }
                        #region CODIGO_COMENTADO
                        //string respuesta = facturacionDA.InsertarComprobante(comprobante.TIPO_DOCUMENTO,
                        //    datosAsiento.MONEDA == "PEN" ? "S" : "D", datosAsiento.FECHA_PROCESO,
                        //    datosAsiento.CODIGO_CLIENTE, "", "", comprobante.COD_CONCEPTO, "", "", Convert.ToDateTime("01/01/1900"),
                        //    //OT 7349 INI
                        //    ConstantesING.ESTADO_ACTIVO, ConstantesING.SI, ConstantesING.SI, ConstantesING.NO,
                        //    //OT 7349 FIN
                        //    comprobante.GLOSA, 1, datosAsiento.SUBF, datosAsiento.SUBF, datosAsiento.IGVF,
                        //    datosAsiento.TOTALF, usuario, "");
                        //idComprobante = 0;
                        //bool esNumero = Int32.TryParse(respuesta, out idComprobante);
                        //DataTable dtComprobante = facturacionDA.ObtenerComprobante(comprobanteAsiento.IdComprobante.ToString());
                        //referenciaComprobante = comprobanteAsiento.Serie + "-" + comprobanteAsiento.Numero;
                        //if (!datosAsiento.IsID_OPERACIONNull() && datosAsiento.TIPO_ASIENTO == "VT_CRA")
                        //{
                        //    ht.Add(datosAsiento.ID_OPERACION, referenciaComprobante);
                        //}
                        ////OT 7349 INI
                        //if (esNumero)
                        //{
                        //    facturacionDA.IngresarDetalle(idComprobante, string.Format(descripcionComprobante, datosAsiento.FONDO, datosAsiento.TEXTO1, datosAsiento.TEXTO2), "",
                        //        ConstantesING.SI, datosAsiento.SUBF, usuario);
                        //}
                        //OT 7349 FIN
                        //VERIFICAR SI datosAsiento TIENE VALOR EN UUID. SI TIENE, SE ACTUALIZA EL COMPROBANTE, SINO SE INSERTA
                        #endregion
                    }

                    string uuid = null;
                    if (sapActivo) //solo se generan los asientos si es que el flag de sap se encuentra activo.
                    {
                        //string uuid = da.RegistrarControl(usuario, direccionIP, referencia, cn, trans);
                        uuid = da.RegistrarControl(usuario, direccionIP, referencia, cantidadSubDetalle, datosAsiento.TIPO_ASIENTO, cn, trans);
                        //cantidadSubDetalle

                        if (datosAsiento.TIPO_ASIENTO == "PD_CRA")
                        {
                            referenciaComprobante = ht[datosAsiento.ID_OPERACION].ToString();
                        }


                        //continuar validando, probablemente este bloque tambien puede ir dentro
                        Asiento.SAPAR1Row sapar1Row = asiento.SAPAR1.NewSAPAR1Row();
                        sapar1Row.SAPUUI = uuid;
                        sapar1Row.SAPSOC = drCabeceraTipo["SOCIEDAD_FI"].ToString().Trim();
                        #region CODIGO_COMENTADO
                        //if (datosAsiento.TIPO_ASIENTO == "PD_CRA")
                        //{
                        //    sapar1Row.SAPNU5 = datosAsiento.REFERENCIA;
                        //    datosAsiento.REFERENCIA = "";
                        //}
                        //else
                        //{

                        //}
                        #endregion
                        sapar1Row.SAPNU5 = generaAsiento;

                        sapar1Row.SAPCLA = drCabeceraTipo["CLASE_DOCUMENTO"].ToString().Trim();
                        sapar1Row.SAPMON = drCabeceraTipo["MONEDA_DOCUMENTO"].ToString().Trim();
                        sapar1Row.SAPFEC = datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd");
                        sapar1Row.SAPFE1 = datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd");
                        //sapar1Row.SAPFE2 = datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd");
                        //colocando tipo de cambio para asientos con TC
                        if (datosAsiento.TIPO_CAMBIO > 0)
                        {
                            sapar1Row.SAPTAS = datosAsiento.TIPO_CAMBIO;
                        }
                        else
                        {
                            sapar1Row.SAPFE2 = datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd");
                        }
                        sapar1Row.SAPREF = datosAsiento.IsREFERENCIANull() || datosAsiento.REFERENCIA == "" ? (drCabeceraTipo.IsNull("REFERENCIA") || drCabeceraTipo["REFERENCIA"].ToString().Trim() == "" ? referencia : drCabeceraTipo["REFERENCIA"].ToString().Trim()) : datosAsiento.REFERENCIA;
                        if (datosAsiento.TIPO_ASIENTO == "VT_ING" || datosAsiento.TIPO_ASIENTO == "VT_CRA" || datosAsiento.TIPO_ASIENTO == "PD_CRA")
                        {
                            sapar1Row.SAPREF = referenciaComprobante;
                        }
                        string textoCabecera1 = string.Format(drCabeceraTipo["TEXTO_CABECERA"].ToString(), datosAsiento.TEXTO1, datosAsiento.TEXTO2);
                        if (textoCabecera1.Length > 25)
                        {
                            textoCabecera1 = textoCabecera1.Substring(0, 25);
                        }
                        sapar1Row.SAPTEX = textoCabecera1;
                        sapar1Row.SAPLIB = string.Empty;

                        asiento.SAPAR1.AddSAPAR1Row(sapar1Row);

                        da.RegistrarCabeceraAsiento(sapar1Row, cn, trans);

                        int i = 1;
                        int k = 1;
                        foreach (DataRow filaMovimiento in drDetallesTipo)
                        {
                            if (Convert.ToDecimal(datosAsiento["MONTO" + i.ToString()]) == 0)
                            {
                                i++;
                                continue;
                            }
                            Asiento.SAPAR2Row sapar2Row = asiento.SAPAR2.NewSAPAR2Row();
                            sapar2Row.SetParentRow(sapar1Row);
                            sapar2Row.SAPNU7 = k;
                            sapar2Row.SAPTI4 = filaMovimiento["CLAVE_CONTABILIZACION"].ToString().Trim(); //TIPO_MOVIMIENTO
                            sapar2Row.SAPCL2 = string.Empty;                                              //CLASE MOVIMIENTO
                            sapar2Row.SAPIMP = Convert.ToDecimal(datosAsiento["MONTO" + i.ToString()]);
                            i++;
                            k++;
                            string glosa = string.Format(filaMovimiento["TEXTO_POSICION"].ToString(), datosAsiento.TEXTO1, datosAsiento.TEXTO2);
                            if (glosa.Length > 50)
                            {
                                glosa = glosa.Substring(0, 50);
                            }
                            sapar2Row.SAPTE1 = glosa;
                            sapar2Row.SAPASI = filaMovimiento["ASIGNACION"].ToString().Trim();
                            string referencia1 = string.Format(filaMovimiento["REFERENCIA1"].ToString(), datosAsiento.REFERENCIA1);
                            if (referencia1.Length > 12)
                            {
                                referencia1 = referencia1.Substring(0, 12);
                            }
                            sapar2Row.SAPRE3 = referencia1;
                            string referencia3 = string.Format(filaMovimiento["REFERENCIA3"].ToString(), datosAsiento.REFERENCIA3);
                            if (referencia3.Length > 20)
                            {
                                referencia3 = referencia3.Substring(0, 20);
                            }
                            sapar2Row.SAPR04 = referencia3;
                            sapar2Row.SAPCUE = filaMovimiento["CUENTA"].ToString().Trim().PadRight(10, '0');
                            if (filaMovimiento["TIPO_OBJETO_IMPUTACION"] != null)
                            {
                                sapar2Row.SAPTI5 = filaMovimiento["TIPO_OBJETO_IMPUTACION"].ToString().Trim();
                                sapar2Row.SAPOBJ = filaMovimiento["OBJETO_IMPUTACION"].ToString().Trim();
                            }
                            sapar2Row.SAPIND = filaMovimiento["INDICADOR_IGV"].ToString().Trim();
                            sapar2Row.SAPFE3 = datosAsiento.FECHA_PROCESO.ToString("yyyyMMdd");
                            sapar2Row.SAPCON = "";
                            sapar2Row.SAPVIA = "";

                            asiento.SAPAR2.AddSAPAR2Row(sapar2Row);
                            da.RegistrarDetalleAsiento(sapar2Row, cn, trans);
                        }
                        da.ActualizarControl(uuid, cn, trans);
                        da.RegistrarControlAsiento(uuid, datosAsiento, usuario, cn, trans);
                        if (datosAsiento.TIPO_ASIENTO == "VT_ING" || datosAsiento.TIPO_ASIENTO == "VT_CRA")
                        {
                            facturacionDA.ActualizarComprobanteIdentificador(comprobanteAsiento.IdComprobante, uuid);
                        }
                    }
                }

                trans.Commit();
                facturacionDA.CommitTransaccion();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                facturacionDA.RollbackTransaccion();
                throw ex;
            }
            finally
            {
                trans.Dispose();
                cn.Close();
                cn.Dispose();
                facturacionDA.LiberarConexion();
            }
        }
        public string ActualizarCorrelativoComprobante(string idComprobante, string numero)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ActualizarCorrelativoComprobante(idComprobante, numero));
        }
        public DataTable ObtenerComprobanteDetalle(string codigo)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ObtenerComprobanteDetalle(codigo));
        }
        public string ActualizarTalonario(int intCodigo, int intFin, string strEstado, string strUsuario)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ActualizarTalonario(intCodigo, intFin, strEstado, strUsuario));
        }
Beispiel #29
0
        public DataTable ObtenerDatosParametro(string strCodigo, string strItem)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ListaParametros(strCodigo, strItem));
        }
        public DataSet ListarComprobanteImpresion(string strTipoComprobante, string strSerie, int intInicio, int intFinal)
        {
            FacturacionDA da = new FacturacionDA();

            return(da.ListarComprobanteImpresion(strTipoComprobante, strSerie, intInicio, intFinal));
        }