コード例 #1
0
        public List <CXP_013_Info> get_list(int IdEmpresa, decimal IdRetencion)
        {
            try
            {
                List <CXP_013_Info> Lista;
                using (Entities_reportes Context = new Entities_reportes())
                {
                    Lista = (from q in Context.VWCXP_013
                             where q.IdEmpresa == IdEmpresa &&
                             q.IdRetencion == IdRetencion
                             select new CXP_013_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdRetencion = q.IdRetencion,
                        Idsecuencia = q.Idsecuencia,
                        re_TipoRet = q.re_TipoRet,
                        co_factura = q.co_factura,
                        NumRetencion = q.NumRetencion,
                        TipoComprobante = q.TipoComprobante,
                        FechaDeEmision = q.FechaDeEmision,
                        EjercicioFiscal = q.EjercicioFiscal,
                        re_baseRetencion = q.re_baseRetencion,
                        re_Porcen_retencion = q.re_Porcen_retencion,
                        re_valor_retencion = q.re_valor_retencion,
                        NombreProveedor = q.NombreProveedor,
                        pr_direccion = q.pr_direccion,
                        pe_cedulaRuc = q.pe_cedulaRuc,
                        pr_correo = q.pr_correo,
                        pr_telefonos = q.pr_telefonos,
                        NAutorizacion = q.NAutorizacion,
                        Fecha_Autorizacion = q.Fecha_Autorizacion,
                        Su_Descripcion = q.Su_Descripcion,
                        co_FechaFactura = q.co_FechaFactura
                    }).ToList();
                }

                if (Lista.Count > 0)
                {
                    var Detalle = Lista[0];
                    if (!string.IsNullOrEmpty(Detalle.NumRetencion) && string.IsNullOrEmpty(Detalle.NAutorizacion))
                    {
                        tb_empresa_Data odataEmpresa = new tb_empresa_Data();
                        tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data();
                        string[] Array = Detalle.NumRetencion.Split('-');
                        if (Array.Count() == 3)
                        {
                            string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.FechaDeEmision, "07", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Array[2]);
                            Lista.ForEach(q => q.NAutorizacion = ClaveAcceso);
                        }
                    }
                }

                return(Lista);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
        public Boolean guardarDB(cp_retencion_Info info)
        {
            Boolean res = true;
            tb_sis_Documento_Tipo_Talonario_Data odata_talonario = new tb_sis_Documento_Tipo_Talonario_Data();
            var info_documento = odata_talonario.GetUltimoNoUsadoFacElec(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2);

            try
            {
                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    var lstf = Context.cp_retencion.Where(q => q.IdEmpresa_Ogiro == info.IdEmpresa && q.IdTipoCbte_Ogiro == info.IdTipoCbte_Ogiro && q.IdCbteCble_Ogiro == info.IdCbteCble_Ogiro).FirstOrDefault();
                    if (lstf != null)
                    {
                        return(false);
                    }

                    Context.cp_retencion.Add(new cp_retencion
                    {
                        IdEmpresa        = info.IdEmpresa,
                        IdEmpresa_Ogiro  = info.IdEmpresa_Ogiro,
                        IdCbteCble_Ogiro = info.IdCbteCble_Ogiro,
                        IdTipoCbte_Ogiro = info.IdTipoCbte_Ogiro,
                        IdRetencion      = info.IdRetencion = get_id(info.IdEmpresa),
                        CodDocumentoTipo = info.CodDocumentoTipo,
                        serie1           = info_documento.Establecimiento,
                        serie2           = info_documento.PuntoEmision,
                        NumRetencion     = info_documento.NumDocumento,
                        NAutorizacion    = info.NAutorizacion,
                        observacion      = info.observacion,
                        fecha            = info.fecha.Date,
                        re_Tiene_RTiva   = info.re_Tiene_RTiva,
                        re_Tiene_RFuente = info.re_Tiene_RFuente,
                        re_EstaImpresa   = info.re_EstaImpresa,
                        Estado           = "A",
                        Fecha_Transac    = DateTime.Now,
                        IdUsuario        = info.IdUsuario,
                    });

                    int Secuencia = 1;
                    foreach (var item in info.detalle)
                    {
                        Context.cp_retencion_det.Add(new cp_retencion_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRetencion         = info.IdRetencion,
                            Idsecuencia         = Secuencia++,
                            re_tipoRet          = item.re_tipoRet,
                            re_Codigo_impuesto  = item.re_Codigo_impuesto,
                            re_baseRetencion    = (double)item.re_baseRetencion,
                            re_Porcen_retencion = (double)item.re_Porcen_retencion,
                            re_valor_retencion  = (double)item.re_valor_retencion,
                            IdCodigo_SRI        = item.IdCodigo_SRI,
                            IdUsuario           = info.IdUsuario,
                            re_estado           = "A"
                        });
                    }
                    Context.SaveChanges();

                    if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01)
                    {
                        ct_cbtecble_Data odata_ct = new ct_cbtecble_Data();
                        var param  = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                        var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (int)param.pa_IdTipoCbte_x_Retencion, 0,
                                                         "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion
                                                         , info.fecha);
                        odata_ct.guardarDB(diario);

                        Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble
                        {
                            rt_IdEmpresa   = info.IdEmpresa,
                            rt_IdRetencion = info.IdRetencion,

                            ct_IdEmpresa  = diario.IdEmpresa,
                            ct_IdTipoCbte = diario.IdTipoCbte,
                            ct_IdCbteCble = diario.IdCbteCble,
                            Observacion   = "Relacion"
                        });
                        Context.SaveChanges();
                    }
                }

                return(res);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #3
0
        public bool modificarDB(cp_retencion_Info info)
        {
            try
            {
                int sec = 1;
                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    var contact = Context.cp_retencion.FirstOrDefault(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion);
                    if (contact != null)
                    {
                        if (string.IsNullOrEmpty(contact.NumRetencion))
                        {
                            tb_sis_Documento_Tipo_Talonario_Data odata_talonario = new tb_sis_Documento_Tipo_Talonario_Data();
                            var info_documento = odata_talonario.GetUltimoNoUsadoFacElec(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2);
                            contact.serie1       = info.serie1 = info_documento.Establecimiento;
                            contact.serie2       = info.serie2 = info_documento.PuntoEmision;
                            contact.NumRetencion = info.NumRetencion = info_documento.NumDocumento;
                        }

                        contact.fecha           = info.fecha;
                        contact.observacion     = info.observacion;
                        contact.IdUsuarioUltMod = info.IdUsuarioUltMod;
                        contact.Fecha_UltMod    = info.Fecha_UltMod;
                        contact.ip = info.ip;
                        if (info.detalle != null)
                        {
                            var lista = Context.cp_retencion_det.Where(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion);
                            Context.cp_retencion_det.RemoveRange(lista);

                            foreach (var item in info.detalle)
                            {
                                cp_retencion_det Entity = new cp_retencion_det
                                {
                                    IdEmpresa           = info.IdEmpresa,
                                    IdRetencion         = info.IdRetencion,
                                    Idsecuencia         = sec,
                                    re_tipoRet          = item.re_tipoRet,
                                    re_baseRetencion    = (double)item.re_baseRetencion,
                                    IdCodigo_SRI        = item.IdCodigo_SRI,
                                    re_Codigo_impuesto  = item.re_Codigo_impuesto,
                                    re_valor_retencion  = Math.Round((double)item.re_valor_retencion, 2, MidpointRounding.AwayFromZero),
                                    re_Porcen_retencion = (double)item.re_Porcen_retencion,
                                    re_estado           = "A"
                                };
                                Context.cp_retencion_det.Add(Entity);
                                sec++;
                            }
                        }
                        Context.SaveChanges();

                        if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01)
                        {
                            ct_cbtecble_Data odata_ct = new ct_cbtecble_Data();
                            var param  = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                            var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (info.info_comprobante.IdTipoCbte == 0 ? Convert.ToInt32(param.pa_IdTipoCbte_x_Retencion) : info.info_comprobante.IdTipoCbte), 0,
                                                             "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion, info.fecha);
                            if (diario != null)
                            {
                                var rel = Context.cp_retencion_x_ct_cbtecble.Where(q => q.rt_IdEmpresa == info.IdEmpresa && q.rt_IdRetencion == info.IdRetencion).FirstOrDefault();
                                if (rel == null)
                                {
                                    if (odata_ct.guardarDB(diario))
                                    {
                                        Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble
                                        {
                                            rt_IdEmpresa   = info.IdEmpresa,
                                            rt_IdRetencion = info.IdRetencion,

                                            ct_IdEmpresa  = diario.IdEmpresa,
                                            ct_IdTipoCbte = diario.IdTipoCbte,
                                            ct_IdCbteCble = diario.IdCbteCble,
                                            Observacion   = "Relacion"
                                        });
                                        Context.SaveChanges();
                                    }
                                }
                                else
                                {
                                    diario.IdCbteCble = rel.ct_IdCbteCble;
                                    odata_ct.modificarDB(diario);
                                }
                            }
                        }
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #4
0
        public Boolean guardarDB(cp_retencion_Info info)
        {
            Boolean res = true;
            tb_sis_Documento_Tipo_Talonario_Info info_documento = new tb_sis_Documento_Tipo_Talonario_Info();
            tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data();

            var punto_venta = odata_pto.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta ?? 0);

            if (punto_venta != null)
            {
                if (punto_venta.EsElectronico == true)
                {
                    info_documento          = odata_talonario.GetUltimoNoUsado(info.IdEmpresa, punto_venta.codDocumentoTipo, punto_venta.Su_CodigoEstablecimiento, punto_venta.cod_PuntoVta, punto_venta.EsElectronico, true);
                    info.NAutorizacion      = null;
                    info.Fecha_Autorizacion = null;
                }
                else
                {
                    info_documento.IdEmpresa        = info.IdEmpresa;
                    info_documento.CodDocumentoTipo = info.CodDocumentoTipo;
                    info_documento.Establecimiento  = info.serie1;
                    info_documento.PuntoEmision     = info.serie2;
                    info_documento.NumDocumento     = info.NumRetencion;
                    info_documento.IdSucursal       = info.IdSucursal;
                    info_documento.Usado            = true;

                    data_talonario.modificar_estado_usadoDB(info_documento);
                }
            }

            try
            {
                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    var lstf = Context.cp_retencion.Where(q => q.IdEmpresa_Ogiro == info.IdEmpresa && q.IdTipoCbte_Ogiro == info.IdTipoCbte_Ogiro && q.IdCbteCble_Ogiro == info.IdCbteCble_Ogiro).FirstOrDefault();
                    if (lstf != null)
                    {
                        return(false);
                    }

                    Context.cp_retencion.Add(new cp_retencion
                    {
                        IdEmpresa        = info.IdEmpresa,
                        IdEmpresa_Ogiro  = info.IdEmpresa_Ogiro,
                        IdCbteCble_Ogiro = info.IdCbteCble_Ogiro,
                        IdTipoCbte_Ogiro = info.IdTipoCbte_Ogiro,
                        IdRetencion      = info.IdRetencion = get_id(info.IdEmpresa),
                        CodDocumentoTipo = info.CodDocumentoTipo = "RETEN",

                        serie1       = info.serie1 = info_documento == null ? null : info_documento.Establecimiento,
                        serie2       = info.serie2 = info_documento == null ? null : info_documento.PuntoEmision,
                        NumRetencion = info.NumRetencion = info_documento == null ? null : info_documento.NumDocumento,

                        NAutorizacion = info.NAutorizacion,
                        observacion   = info.observacion = info.observacion + info.serie1 + "-" + info.serie2 + "-" + info.NumRetencion,
                        fecha         = info.fecha.Date,
                        Estado        = "A",
                        IdPuntoVta    = info.IdPuntoVta,
                        IdSucursal    = info.IdSucursal,
                        Fecha_Transac = DateTime.Now,
                        IdUsuario     = info.IdUsuario,
                    });

                    int Secuencia = 1;
                    foreach (var item in info.detalle)
                    {
                        Context.cp_retencion_det.Add(new cp_retencion_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRetencion         = info.IdRetencion,
                            Idsecuencia         = Secuencia++,
                            re_tipoRet          = item.re_tipoRet,
                            re_Codigo_impuesto  = item.re_Codigo_impuesto,
                            re_baseRetencion    = (double)item.re_baseRetencion,
                            re_Porcen_retencion = (double)item.re_Porcen_retencion,
                            re_valor_retencion  = (double)item.re_valor_retencion,
                            IdCodigo_SRI        = item.IdCodigo_SRI,
                            IdUsuario           = info.IdUsuario,
                            re_estado           = "A"
                        });
                    }
                    Context.SaveChanges();

                    if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01)
                    {
                        ct_cbtecble_Data odata_ct = new ct_cbtecble_Data();
                        var param  = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                        var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (int)param.pa_IdTipoCbte_x_Retencion, 0,
                                                         info.observacion, info.fecha);
                        odata_ct.guardarDB(diario);

                        Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble
                        {
                            rt_IdEmpresa   = info.IdEmpresa,
                            rt_IdRetencion = info.IdRetencion,

                            ct_IdEmpresa  = diario.IdEmpresa,
                            ct_IdTipoCbte = diario.IdTipoCbte,
                            ct_IdCbteCble = diario.IdCbteCble,
                            Observacion   = "Relacion"
                        });
                        Context.SaveChanges();
                    }
                }

                return(res);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_retencion_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
コード例 #5
0
        public List <FAC_020_Info> get_list(int IdEmpresa, int IdSucursal, int IdBodega, decimal IdGuiaRemision)
        {
            try
            {
                List <FAC_020_Info> Lista;
                using (Entities_reportes Context = new Entities_reportes())
                {
                    Lista = (from q in Context.VWFAC_020
                             where q.gi_IdEmpresa == IdEmpresa &&
                             q.gi_IdSucursal == IdSucursal &&
                             q.gi_IdBodega == IdBodega &&
                             q.gi_IdGuiaRemision == IdGuiaRemision
                             select new FAC_020_Info
                    {
                        fa_IdEmpresa = q.fa_IdEmpresa,
                        fa_IdSucursal = q.fa_IdSucursal,
                        fa_IdBodega = q.fa_IdBodega,
                        fa_IdCbteVta = q.fa_IdCbteVta,
                        gi_IdEmpresa = q.gi_IdEmpresa,
                        gi_IdSucursal = q.gi_IdSucursal,
                        gi_IdBodega = q.gi_IdBodega,
                        gi_IdGuiaRemision = q.gi_IdGuiaRemision,
                        Secuencia = q.Secuencia,
                        IdProducto = q.IdProducto,
                        pr_codigo = q.pr_codigo,
                        pr_descripcion = q.pr_descripcion,
                        gi_cantidad = q.gi_cantidad,
                        gi_detallexItems = q.gi_detallexItems,
                        pe_nombreCompleto = q.pe_nombreCompleto,
                        pe_cedulaRuc = q.pe_cedulaRuc,
                        CodDocumentoTipo = q.CodDocumentoTipo,
                        NumGuia_Preimpresa = q.NumGuia_Preimpresa,
                        CodGuiaRemision = q.CodGuiaRemision,
                        NUAutorizacion = q.NUAutorizacion,
                        Fecha_Autorizacion = q.Fecha_Autorizacion,
                        IdCliente = q.IdCliente,
                        IdTransportista = q.IdTransportista,
                        gi_fecha = q.gi_fecha,
                        gi_FechaFinTraslado = q.gi_FechaFinTraslado,
                        gi_FechaInicioTraslado = q.gi_FechaInicioTraslado,
                        gi_Observacion = q.gi_Observacion,
                        placa = q.placa,
                        Direccion_Origen = q.Direccion_Origen,
                        Direccion_Destino = q.Direccion_Destino,
                        Estado = q.Estado,
                        tr_Descripcion = q.tr_Descripcion,
                        NumComprobanteVenta = q.NumComprobanteVenta,
                        CedulaTransportista = q.CedulaTransportista,
                        NombreTransportista = q.NombreTransportista,
                        vt_fecha = q.vt_fecha,
                        vt_autorizacion = q.vt_autorizacion,
                        Su_Direccion = q.Su_Direccion,
                        Su_Descripcion = q.Su_Descripcion
                    }).ToList();
                }

                if (Lista.Count > 0)
                {
                    var Detalle = Lista[0];
                    if (!string.IsNullOrEmpty(Detalle.NumGuia_Preimpresa) && string.IsNullOrEmpty(Detalle.NUAutorizacion))
                    {
                        tb_empresa_Data odataEmpresa = new tb_empresa_Data();
                        tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data();
                        string[] Array = Detalle.NumGuia_Preimpresa.Split('-');
                        if (Array.Count() == 3)
                        {
                            string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.gi_fecha, "06", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Array[2]);
                            Lista.ForEach(q => q.NUAutorizacion = ClaveAcceso);
                        }
                    }
                }

                return(Lista);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #6
0
        public bool guardarDB(fa_guia_remision_Info info)
        {
            fa_TerminoPago_Info termino_pago = new fa_TerminoPago_Info();
            fa_PuntoVta_Info    punto_venta  = new fa_PuntoVta_Info();

            termino_pago = data_tpago.get_info(info.vt_tipo_venta);
            punto_venta  = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta_Fact);
            try
            {
                int secuencia = 1;
                using (Entities_facturacion Context = new Entities_facturacion())
                {
                    fa_guia_remision Entity = new fa_guia_remision
                    {
                        IdEmpresa              = info.IdEmpresa,
                        IdSucursal             = info.IdSucursal,
                        IdPuntoVta             = info.IdPuntoVta,
                        IdBodega               = info.IdBodega,
                        IdGuiaRemision         = info.IdGuiaRemision = get_id(info.IdEmpresa),
                        CodGuiaRemision        = info.CodGuiaRemision,
                        CodDocumentoTipo       = info.CodDocumentoTipo,
                        Serie1                 = info.Serie1,
                        Serie2                 = info.Serie2,
                        NumGuia_Preimpresa     = info.NumGuia_Preimpresa,
                        NUAutorizacion         = info.NUAutorizacion,
                        Fecha_Autorizacion     = info.Fecha_Autorizacion,
                        IdCliente              = info.IdCliente,
                        IdTransportista        = info.IdTransportista,
                        gi_fecha               = info.gi_fecha.Date,
                        gi_plazo               = info.gi_plazo,
                        gi_fech_venc           = info.gi_fech_venc,
                        gi_Observacion         = info.gi_Observacion,
                        gi_FechaInicioTraslado = info.gi_FechaInicioTraslado.Date,
                        gi_FechaFinTraslado    = info.gi_FechaFinTraslado.Date,
                        placa             = info.placa,
                        Direccion_Destino = info.Direccion_Destino,
                        Direccion_Origen  = info.Direccion_Origen,
                        IdMotivoTraslado  = info.IdMotivoTraslado,
                        Estado            = info.Estado = true,
                        IdUsuarioCreacion = info.IdUsuarioCreacion,
                        FechaCreacion     = info.FechaCreacion = DateTime.Now,
                        IdCbteVta         = info.IdCbteVta,
                        IdContacto        = (info.IdContacto == 0 ? null : info.IdContacto)
                    };

                    foreach (var item in info.lst_detalle)
                    {
                        Context.fa_guia_remision_det.Add(new fa_guia_remision_det
                        {
                            IdEmpresa        = info.IdEmpresa,
                            IdSucursal       = info.IdSucursal,
                            IdBodega         = info.IdBodega,
                            IdGuiaRemision   = info.IdGuiaRemision,
                            Secuencia        = secuencia,
                            IdProducto       = item.IdProducto,
                            gi_cantidad      = item.gi_cantidad,
                            gi_detallexItems = item.gi_detallexItems,
                            gi_precio        = item.gi_precio,
                            gi_por_desc      = item.gi_por_desc,
                            gi_descuentoUni  = item.gi_descuentoUni,
                            gi_PrecioFinal   = item.gi_PrecioFinal,
                            gi_Subtotal      = item.gi_Subtotal,
                            IdCod_Impuesto   = item.IdCod_Impuesto,
                            gi_por_iva       = item.gi_por_iva,
                            gi_Iva           = item.gi_Iva,
                            gi_Total         = item.gi_Total,
                            IdCentroCosto    = item.IdCentroCosto,
                            IdEmpresa_pf     = item.IdEmpresa_pf,
                            IdSucursal_pf    = item.IdSucursal_pf,
                            IdProforma       = item.IdProforma,
                            Secuencia_pf     = item.Secuencia_pf
                        });

                        if (item.IdCbteVta != null && item.IdCbteVta != 0)
                        {
                            Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura
                            {
                                IdEmpresa_fact      = info.IdEmpresa,
                                IdSucursal_fact     = info.IdSucursal,
                                IdBodega_fact       = info.IdBodega,
                                IdCbteVta_fact      = Convert.ToDecimal(item.IdCbteVta),
                                IdGuiaRemision_guia = info.IdGuiaRemision,
                                Secuencia_fact      = Convert.ToInt32(item.Secuencia_fact),
                                Secuencia_guia      = secuencia,
                                IdBodega_guia       = info.IdBodega,
                                IdSucursal_guia     = info.IdSucursal,
                                IdEmpresa_guia      = info.IdEmpresa
                            });
                        }

                        secuencia++;
                    }

                    foreach (var item in info.lst_detalle_x_factura)
                    {
                        if (item.IdCbteVta != null && item.IdCbteVta != 0)
                        {
                            Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision
                            {
                                fa_IdEmpresa      = info.IdEmpresa,
                                fa_IdSucursal     = info.IdSucursal,
                                fa_IdBodega       = info.IdBodega,
                                fa_IdCbteVta      = item.IdCbteVta,
                                gi_IdEmpresa      = info.IdEmpresa,
                                gi_IdSucursal     = info.IdSucursal,
                                gi_IdBodega       = info.IdBodega,
                                gi_IdGuiaRemision = info.IdGuiaRemision
                            });
                        }
                    }

                    #region Talonario
                    fa_PuntoVta_Info info_puntovta = new fa_PuntoVta_Info();
                    tb_sis_Documento_Tipo_Talonario_Info info_talonario   = new tb_sis_Documento_Tipo_Talonario_Info();
                    tb_sis_Documento_Tipo_Talonario_Info ultimo_talonario = new tb_sis_Documento_Tipo_Talonario_Info();
                    tb_sis_Documento_Tipo_Talonario_Data data_talonario   = new tb_sis_Documento_Tipo_Talonario_Data();
                    info_puntovta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta);

                    if (info_puntovta != null)
                    {
                        if (info_puntovta.EsElectronico == true)
                        {
                            ultimo_talonario = data_talonario.GetUltimoNoUsado(info.IdEmpresa, info_puntovta.codDocumentoTipo, info_puntovta.Su_CodigoEstablecimiento, info_puntovta.cod_PuntoVta, info_puntovta.EsElectronico, true);

                            if (ultimo_talonario != null)
                            {
                                Entity.Serie1             = info.Serie1 = ultimo_talonario.Establecimiento;
                                Entity.Serie2             = info.Serie2 = ultimo_talonario.PuntoEmision;
                                Entity.NumGuia_Preimpresa = info.NumGuia_Preimpresa = ultimo_talonario.NumDocumento;
                                Entity.NUAutorizacion     = null;
                                Entity.Fecha_Autorizacion = null;
                            }
                        }
                        else
                        {
                            info_talonario.IdEmpresa        = info.IdEmpresa;
                            info_talonario.CodDocumentoTipo = info.CodDocumentoTipo;
                            info_talonario.Establecimiento  = info.Serie1;
                            info_talonario.PuntoEmision     = info.Serie2;
                            info_talonario.NumDocumento     = info.NumGuia_Preimpresa;
                            info_talonario.IdSucursal       = info.IdSucursal;
                            info_talonario.Usado            = true;

                            Entity.NUAutorizacion     = info_talonario.NumAutorizacion;
                            Entity.Fecha_Autorizacion = DateTime.Now.Date;

                            data_talonario.modificar_estado_usadoDB(info_talonario);
                        }
                    }

                    #endregion

                    #region Factura
                    if (info.GenerarFactura == true && (info.IdCbteVta == null || info.IdCbteVta == 0))
                    {
                        fa_factura_Info info_fact = new fa_factura_Info();
                        info_fact.lst_det   = new List <fa_factura_det_Info>();
                        info_fact.lst_cuota = new List <fa_cuotas_x_doc_Info>();
                        List <fa_guia_remision_det_x_factura_Info> info_guia_x_factura = new List <fa_guia_remision_det_x_factura_Info>();
                        int secuencia_fact = 1;

                        if (termino_pago != null && termino_pago.IdTerminoPago != "")
                        {
                            info.vt_fech_venc = info.gi_fecha.AddDays(termino_pago.Dias_Vct);
                        }

                        if (punto_venta != null && punto_venta.IdPuntoVta != 0)
                        {
                            info.IdCaja = punto_venta.IdCaja;
                        }

                        info_fact.IdEmpresa            = info_fact.IdEmpresa = info.IdEmpresa;
                        info_fact.IdSucursal           = info_fact.IdSucursal = info.IdSucursal;
                        info_fact.IdBodega             = info_fact.IdBodega = info.IdBodega;
                        info_fact.vt_tipoDoc           = cl_enumeradores.eTipoDocumento.FACT.ToString();
                        info_fact.vt_serie1            = info.vt_serie1;
                        info_fact.vt_serie2            = info.vt_serie2;
                        info_fact.vt_NumFactura        = info.vt_NumFactura;
                        info_fact.Fecha_Autorizacion   = DateTime.Now;
                        info_fact.vt_autorizacion      = null;
                        info_fact.vt_fecha             = info.gi_fecha.Date;
                        info_fact.vt_fech_venc         = info.vt_fech_venc; /*depende de la termino de pago*/
                        info_fact.IdCliente            = info.IdCliente;
                        info_fact.IdContacto           = info.IdContacto;
                        info_fact.IdVendedor           = info.IdVendedor;
                        info_fact.vt_plazo             = termino_pago.Dias_Vct; /**depende de la termino de pago*/
                        info_fact.vt_Observacion       = string.IsNullOrEmpty(info.ObservacionFactura) ? "" : info.ObservacionFactura;
                        info_fact.IdCatalogo_FormaPago = info.IdCatalogo_FormaPago;
                        info_fact.vt_tipo_venta        = info.vt_tipo_venta;
                        info_fact.IdCaja              = info.IdCaja; /*depende del punto de venta*/
                        info_fact.IdPuntoVta          = info.IdPuntoVta_Fact;
                        info_fact.fecha_primera_cuota = null;
                        info_fact.Fecha_Transaccion   = DateTime.Now;
                        info_fact.Estado              = info.Estado == true ? "A" : "I";
                        info_fact.esta_impresa        = null;
                        info_fact.valor_abono         = null;
                        info_fact.IdUsuario           = info.IdUsuarioCreacion;
                        info_fact.IdNivel             = 1;
                        info_fact.CodCbteVta          = info.CodGuiaRemision;

                        var lst_detalle_factura = info.lst_detalle.Where(q => q.SeFactura == true);
                        foreach (var item in info.lst_detalle)
                        {
                            fa_factura_det_Info info_fact_detalle = new fa_factura_det_Info
                            {
                                IdEmpresa  = info_fact.IdEmpresa,
                                IdSucursal = info_fact.IdSucursal,
                                IdBodega   = info_fact.IdBodega,
                                Secuencia  = secuencia_fact++,

                                IdProducto         = item.IdProducto,
                                vt_cantidad        = item.gi_cantidad,
                                vt_Precio          = item.gi_precio,
                                vt_PorDescUnitario = item.gi_por_desc,
                                vt_DescUnitario    = item.gi_descuentoUni,
                                vt_PrecioFinal     = item.gi_PrecioFinal,
                                vt_Subtotal        = item.gi_Subtotal,
                                vt_por_iva         = item.gi_por_iva,
                                IdCod_Impuesto_Iva = item.IdCod_Impuesto,
                                vt_iva             = item.gi_Iva,
                                vt_total           = item.gi_Total,
                                vt_detallexItems   = item.gi_detallexItems,
                                IdEmpresa_pf       = item.IdEmpresa_pf,
                                IdSucursal_pf      = item.IdSucursal_pf,
                                IdProforma         = item.IdProforma,
                                Secuencia_pf       = item.Secuencia_pf,

                                IdCentroCosto       = item.IdCentroCosto,
                                IdPunto_Cargo       = item.IdPunto_cargo,
                                IdPunto_cargo_grupo = item.IdPunto_cargo_grupo,
                            };

                            info_fact.lst_det.Add(info_fact_detalle);
                        }

                        var SubtotalConDscto       = (decimal)Math.Round(info.lst_detalle.Sum(q => q.gi_Subtotal), 2, MidpointRounding.AwayFromZero);
                        var SubtotalIVASinDscto    = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva != 0).Sum(q => q.vt_cantidad * q.vt_Precio), 2, MidpointRounding.AwayFromZero);
                        var SubtotalSinIVASinDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva == 0).Sum(q => q.vt_cantidad * q.vt_Precio), 2, MidpointRounding.AwayFromZero);
                        var Descuento              = (decimal)Math.Round(info_fact.lst_det.Sum(q => q.vt_DescUnitario * q.vt_cantidad), 2, MidpointRounding.AwayFromZero);
                        var SubtotalIVAConDscto    = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva != 0).Sum(q => q.vt_Subtotal), 2, MidpointRounding.AwayFromZero);
                        var SubtotalSinIVAConDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva == 0).Sum(q => q.vt_Subtotal), 2, MidpointRounding.AwayFromZero);
                        var ValorIVA         = (decimal)Math.Round(info_fact.lst_det.Sum(q => q.vt_iva), 2, MidpointRounding.AwayFromZero);
                        var SubtotalSinDscto = SubtotalIVASinDscto + SubtotalSinIVASinDscto;
                        var Total            = SubtotalConDscto + ValorIVA;

                        info_fact.info_resumen = new fa_factura_resumen_Info
                        {
                            IdEmpresa  = info.IdEmpresa,
                            IdSucursal = info.IdSucursal,
                            IdBodega   = info.IdBodega,
                            //  IdCbteVta =  IdCbteVta,

                            SubtotalConDscto       = SubtotalConDscto,
                            SubtotalIVAConDscto    = SubtotalIVAConDscto,
                            SubtotalIVASinDscto    = SubtotalIVASinDscto,
                            SubtotalSinDscto       = SubtotalSinDscto,
                            SubtotalSinIVAConDscto = SubtotalSinIVAConDscto,
                            SubtotalSinIVASinDscto = SubtotalSinIVASinDscto,

                            Total         = Total,
                            Descuento     = Descuento,
                            ValorEfectivo = 0,
                            ValorIVA      = ValorIVA,
                            Cambio        = Total,
                        };
                        data_fact.guardarDB(info_fact);
                        Entity.IdCbteVta = info_fact.IdCbteVta;

                        #region Relacion Guia
                        Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision
                        {
                            fa_IdEmpresa      = info.IdEmpresa,
                            fa_IdSucursal     = info.IdSucursal,
                            fa_IdBodega       = info.IdBodega,
                            fa_IdCbteVta      = info_fact.IdCbteVta,
                            gi_IdEmpresa      = info.IdEmpresa,
                            gi_IdSucursal     = info.IdSucursal,
                            gi_IdBodega       = info.IdBodega,
                            gi_IdGuiaRemision = info.IdGuiaRemision
                        });
                        secuencia = 1;
                        foreach (var item in info.lst_detalle)
                        {
                            Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura
                            {
                                IdEmpresa_fact  = info.IdEmpresa,
                                IdSucursal_fact = info.IdSucursal,
                                IdBodega_fact   = info.IdBodega,
                                IdCbteVta_fact  = info_fact.IdCbteVta,
                                Secuencia_fact  = secuencia,

                                IdEmpresa_guia      = info.IdEmpresa,
                                IdSucursal_guia     = info.IdSucursal,
                                IdBodega_guia       = info.IdBodega,
                                IdGuiaRemision_guia = info.IdGuiaRemision,
                                Secuencia_guia      = secuencia++,
                            });
                        }
                        #endregion
                    }
                    #endregion

                    Context.fa_guia_remision.Add(Entity);
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.InnerException.Message, Clase = "fa_guia_remision_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }
コード例 #7
0
ファイル: FAC_002_Data.cs プロジェクト: arocajorge/ERPWEB
        public List <FAC_002_Info> get_list(int IdEmpresa, int IdSucursal, int IdBodega, decimal IdNota)
        {
            try
            {
                List <FAC_002_Info> Lista = new List <FAC_002_Info>();
                using (Entities_reportes Context = new Entities_reportes())
                {
                    Lista = (from q in Context.VWFAC_002
                             where q.IdEmpresa == IdEmpresa &&
                             q.IdSucursal == IdSucursal &&
                             q.IdBodega == IdBodega &&
                             q.IdNota == IdNota
                             select new FAC_002_Info
                    {
                        Fecha_Autorizacion = q.Fecha_Autorizacion,
                        IdBodega = q.IdBodega,
                        IdEmpresa = q.IdEmpresa,
                        IdProducto = q.IdProducto,
                        IdSucursal = q.IdSucursal,
                        pr_descripcion = q.pr_descripcion,
                        Secuencia = q.Secuencia,
                        Celular = q.Celular,
                        CodDocumentoTipo = q.CodDocumentoTipo,
                        Correo = q.Correo,
                        CreDeb = q.CreDeb,
                        DetalleAdicional = q.DetalleAdicional,
                        Direccion = q.Direccion,
                        DocumentoAplicado = q.DocumentoAplicado,
                        FechaDocumentoAplica = q.FechaDocumentoAplica,
                        IdNota = q.IdNota,
                        no_fecha = q.no_fecha,
                        NumAutorizacion = q.NumAutorizacion,
                        NumNota_Impresa = q.NumNota_Impresa,
                        pe_cedulaRuc = q.pe_cedulaRuc,
                        pe_nombreCompleto = q.pe_nombreCompleto,
                        pr_codigo = q.pr_codigo,
                        sc_iva = q.sc_iva,
                        sc_observacion = q.sc_observacion,
                        sc_precioFinal = q.sc_precioFinal,
                        sc_subtotal = q.sc_subtotal,
                        sc_total = q.sc_total,
                        Serie1 = q.Serie1,
                        Serie2 = q.Serie2,
                        SubtotalAntesDescuento = q.SubtotalAntesDescuento,
                        SubtotalIva = q.SubtotalIva,
                        SubtotalSinIva = q.SubtotalSinIva,
                        Telefono = q.Telefono,
                        TotalDescuento = q.TotalDescuento,
                        sc_cantidad = q.sc_cantidad
                    }).ToList();
                }

                if (Lista.Count > 0)
                {
                    var Detalle = Lista[0];

                    if (!string.IsNullOrEmpty(Detalle.NumNota_Impresa) && string.IsNullOrEmpty(Detalle.NumAutorizacion))
                    {
                        tb_empresa_Data odataEmpresa = new tb_empresa_Data();
                        tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data();
                        string[] Array       = Detalle.NumNota_Impresa.Split('-');
                        string   ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.no_fecha, Detalle.CreDeb == "C" ? "04" : "05", odataEmpresa.get_info(IdEmpresa).em_ruc, Detalle.Serie1 + Detalle.Serie2, Array[2]);
                        Lista.ForEach(q => q.NumAutorizacion = ClaveAcceso);
                    }
                }

                return(Lista);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #8
0
ファイル: CXP_020_Data.cs プロジェクト: arocajorge/ERPWEB
        public List <CXP_020_Info> GetList(int IdEmpresa, int IdTipoCbte, decimal IdCbteCble)
        {
            try
            {
                List <CXP_020_Info> Lista = new List <CXP_020_Info>();

                using (Entities_reportes db = new Entities_reportes())
                {
                    var lst = db.VWCXP_020.Where(q => q.IdEmpresa == IdEmpresa && q.IdTipoCbte_Ogiro == IdTipoCbte && q.IdCbteCble_Ogiro == IdCbteCble).ToList();
                    foreach (var item in lst)
                    {
                        Lista.Add(new CXP_020_Info
                        {
                            IdEmpresa          = item.IdEmpresa,
                            IdTipoCbte_Ogiro   = item.IdTipoCbte_Ogiro,
                            IdCbteCble_Ogiro   = item.IdCbteCble_Ogiro,
                            NomDocumento       = item.NomDocumento,
                            co_serie           = item.co_serie,
                            co_factura         = item.co_factura,
                            Num_Autorizacion   = item.Num_Autorizacion,
                            fecha_autorizacion = item.fecha_autorizacion,
                            Su_Descripcion     = item.Su_Descripcion,
                            Su_Direccion       = item.Su_Direccion,
                            pe_nombreCompleto  = item.pe_nombreCompleto,
                            pe_cedulaRuc       = item.pe_cedulaRuc,
                            co_FechaFactura    = item.co_FechaFactura,
                            co_observacion     = item.co_observacion,
                            IdFormaPago        = item.IdFormaPago,
                            nom_FormaPago      = item.nom_FormaPago,
                            co_subtotal_iva    = item.co_subtotal_iva,
                            co_subtotal_siniva = item.co_subtotal_siniva,
                            co_subtotal        = item.co_subtotal,
                            co_total           = item.co_total,
                            co_valoriva        = item.co_valoriva,
                            pr_descripcion     = item.pr_descripcion,
                            pr_codigo          = item.pr_codigo,
                            Subtotal           = item.Subtotal,
                            Descuento          = item.Descuento,
                            TotalDetalle       = item.TotalDetalle,
                            ValorIva           = item.ValorIva,
                            pr_direccion       = item.pr_direccion,
                            pr_correo          = item.pr_correo,
                            Cantidad           = item.Cantidad,
                            CostoUni           = item.CostoUni
                        });
                    }
                }

                if (Lista.Count > 0)
                {
                    var Detalle = Lista[0];
                    if (!string.IsNullOrEmpty(Detalle.co_factura) && (string.IsNullOrEmpty(Detalle.Num_Autorizacion) || Detalle.Num_Autorizacion == "1234567890"))
                    {
                        tb_empresa_Data odataEmpresa = new tb_empresa_Data();
                        tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data();
                        string[] Array = Detalle.co_serie.Split('-');
                        if (Array.Count() == 3)
                        {
                            string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.co_FechaFactura, "06", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Detalle.co_factura);
                            Lista.ForEach(q => q.Num_Autorizacion = ClaveAcceso);
                        }
                    }
                }

                return(Lista);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #9
0
        public bool guardarDB(fa_notaCreDeb_Info info)
        {
            try
            {
                #region Variables
                int Secuencia               = 1;
                ct_cbtecble_Data odata_ct   = new ct_cbtecble_Data();
                cxc_cobro_Data   odata_cobr = new cxc_cobro_Data();
                #endregion

                using (Entities_facturacion db_f = new Entities_facturacion())
                {
                    #region Nota de debito credito

                    #region Cabecera
                    fa_notaCreDeb Entity = new fa_notaCreDeb
                                           //db_f.fa_notaCreDeb.Add(new fa_notaCreDeb
                    {
                        IdEmpresa          = info.IdEmpresa,
                        IdSucursal         = info.IdSucursal,
                        IdBodega           = info.IdBodega,
                        IdNota             = info.IdNota = get_id(info.IdEmpresa, info.IdSucursal, info.IdBodega),
                        IdPuntoVta         = info.IdPuntoVta,
                        CodNota            = info.CodNota,
                        CreDeb             = info.CreDeb.Trim(),
                        CodDocumentoTipo   = info.CodDocumentoTipo,
                        Serie1             = info.Serie1,
                        Serie2             = info.Serie2,
                        NumNota_Impresa    = info.NumNota_Impresa,
                        NumAutorizacion    = info.NumAutorizacion,
                        Fecha_Autorizacion = info.Fecha_Autorizacion,
                        IdCliente          = info.IdCliente,
                        no_fecha           = info.no_fecha.Date,
                        no_fecha_venc      = info.no_fecha_venc.Date,
                        IdTipoNota         = info.IdTipoNota,
                        sc_observacion     = info.sc_observacion,
                        Estado             = info.Estado = "A",
                        NaturalezaNota     = info.NaturalezaNota,
                        IdCtaCble_TipoNota = info.IdCtaCble_TipoNota,

                        IdUsuario = info.IdUsuario
                    };
                    #endregion

                    #region Detalle
                    foreach (var item in info.lst_det)
                    {
                        db_f.fa_notaCreDeb_det.Add(new fa_notaCreDeb_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdSucursal          = info.IdSucursal,
                            IdBodega            = info.IdBodega,
                            IdNota              = info.IdNota,
                            Secuencia           = Secuencia++,
                            IdProducto          = item.IdProducto,
                            sc_cantidad         = item.sc_cantidad,
                            sc_cantidad_factura = item.sc_cantidad_factura,
                            sc_Precio           = item.sc_Precio,
                            sc_descUni          = item.sc_descUni,
                            sc_PordescUni       = item.sc_PordescUni,
                            sc_precioFinal      = item.sc_precioFinal,
                            vt_por_iva          = item.vt_por_iva,
                            sc_iva              = item.sc_iva,
                            IdCod_Impuesto_Iva  = item.IdCod_Impuesto_Iva,
                            sc_subtotal         = item.sc_subtotal,
                            sc_total            = item.sc_total,
                            IdCentroCosto       = item.IdCentroCosto,
                            IdPunto_Cargo       = item.IdPunto_Cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        });
                    }
                    #endregion

                    #region Cruce
                    Secuencia = 1;
                    foreach (var item in info.lst_cruce)
                    {
                        db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Add(new fa_notaCreDeb_x_fa_factura_NotaDeb
                        {
                            IdEmpresa_nt              = info.IdEmpresa,
                            IdSucursal_nt             = info.IdSucursal,
                            IdBodega_nt               = info.IdBodega,
                            IdNota_nt                 = info.IdNota,
                            secuencia                 = Secuencia++,
                            IdEmpresa_fac_nd_doc_mod  = item.IdEmpresa_fac_nd_doc_mod,
                            IdSucursal_fac_nd_doc_mod = item.IdSucursal_fac_nd_doc_mod,
                            IdBodega_fac_nd_doc_mod   = item.IdBodega_fac_nd_doc_mod,
                            IdCbteVta_fac_nd_doc_mod  = item.IdCbteVta_fac_nd_doc_mod,
                            vt_tipoDoc                = item.vt_tipoDoc,
                            Valor_Aplicado            = item.Valor_Aplicado,
                            fecha_cruce               = DateTime.Now,
                        });
                    }
                    #endregion

                    #region Talonario
                    fa_PuntoVta_Data data_puntovta = new fa_PuntoVta_Data();
                    tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data();
                    fa_PuntoVta_Info info_puntovta = new fa_PuntoVta_Info();
                    tb_sis_Documento_Tipo_Talonario_Info ultimo_talonario = new tb_sis_Documento_Tipo_Talonario_Info();
                    tb_sis_Documento_Tipo_Talonario_Info info_talonario   = new tb_sis_Documento_Tipo_Talonario_Info();
                    info_puntovta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta);

                    if (info_puntovta != null && info.NaturalezaNota == "SRI")
                    {
                        if (info_puntovta.EsElectronico == true)
                        {
                            ultimo_talonario = data_talonario.GetUltimoNoUsado(info.IdEmpresa, info_puntovta.codDocumentoTipo, info_puntovta.Su_CodigoEstablecimiento, info_puntovta.cod_PuntoVta, info_puntovta.EsElectronico, true);

                            if (ultimo_talonario != null)
                            {
                                Entity.Serie1          = info.Serie1 = ultimo_talonario.Establecimiento;
                                Entity.Serie2          = info.Serie2 = ultimo_talonario.PuntoEmision;
                                Entity.NumNota_Impresa = info.NumNota_Impresa = ultimo_talonario.NumDocumento;
                            }
                        }
                        else
                        {
                            info_talonario.IdEmpresa        = info.IdEmpresa;
                            info_talonario.CodDocumentoTipo = info.CodDocumentoTipo;
                            info_talonario.Establecimiento  = info.Serie1;
                            info_talonario.PuntoEmision     = info.Serie2;
                            info_talonario.NumDocumento     = info.NumNota_Impresa;
                            info_talonario.IdSucursal       = info.IdSucursal;
                            info_talonario.Usado            = true;

                            data_talonario.modificar_estado_usadoDB(info_talonario);
                        }
                    }
                    else
                    {
                        Entity.Serie1          = null;
                        Entity.Serie2          = null;
                        Entity.NumNota_Impresa = null;
                    }
                    #endregion

                    db_f.fa_notaCreDeb.Add(Entity);
                    db_f.SaveChanges();

                    #endregion

                    #region Parametros
                    var parametros = db_f.fa_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                    var cliente    = db_f.fa_cliente.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdCliente == info.IdCliente).FirstOrDefault();
                    #endregion

                    #region Contabilidad
                    if (parametros != null)
                    {
                        ct_cbtecble_Info diario = armar_diario(info, info.CreDeb.Trim() == "C" ? (int)parametros.IdTipoCbteCble_NC : (int)parametros.IdTipoCbteCble_ND, cliente.IdCtaCble_cxc_Credito, info.IdCtaCble_TipoNota);
                        if (diario != null)
                        {
                            if (odata_ct.guardarDB(diario))
                            {
                                db_f.fa_notaCreDeb_x_ct_cbtecble.Add(new fa_notaCreDeb_x_ct_cbtecble
                                {
                                    no_IdEmpresa  = info.IdEmpresa,
                                    no_IdSucursal = info.IdSucursal,
                                    no_IdBodega   = info.IdBodega,
                                    no_IdNota     = info.IdNota,

                                    ct_IdEmpresa  = diario.IdEmpresa,
                                    ct_IdTipoCbte = diario.IdTipoCbte,
                                    ct_IdCbteCble = diario.IdCbteCble,

                                    observacion = info.CodDocumentoTipo + (info.NaturalezaNota == "SRI" ? ("-" + info.Serie1 + "-" + info.Serie2 + "-" + info.NumNota_Impresa) : info.IdNota.ToString("000000000"))
                                });
                                db_f.SaveChanges();
                            }
                        }
                    }
                    #endregion

                    #region Cobranza
                    if (info.CreDeb.Trim() == "C" && info.lst_cruce.Count != 0)
                    {
                        cxc_cobro_Info cobro = armar_cobro(info);
                        if (cobro != null)
                        {
                            if (odata_cobr.guardarDB(cobro))
                            {
                                db_f.fa_notaCreDeb_x_cxc_cobro.Add(new fa_notaCreDeb_x_cxc_cobro
                                {
                                    IdEmpresa_nt   = info.IdEmpresa,
                                    IdSucursal_nt  = info.IdSucursal,
                                    IdBodega_nt    = info.IdBodega,
                                    IdNota_nt      = info.IdNota,
                                    IdEmpresa_cbr  = cobro.IdEmpresa,
                                    IdSucursal_cbr = cobro.IdSucursal,
                                    IdCobro_cbr    = cobro.IdCobro,
                                    Valor_cobro    = Math.Round(info.lst_cruce.Sum(q => q.Valor_Aplicado), 2, MidpointRounding.AwayFromZero)
                                });
                                db_f.SaveChanges();
                            }
                        }
                    }

                    #endregion
                }

                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "fa_notaCreDeb_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
コード例 #10
0
ファイル: FAC_007_Data.cs プロジェクト: arocajorge/ERPWEB
        public List <FAC_007_Info> get_list(int IdEmpresa, int IdSucursal, int IdBodega, decimal IdCbteVta)
        {
            try
            {
                List <FAC_007_Info> Lista;

                using (Entities_reportes Context = new Entities_reportes())
                {
                    Lista = (from q in Context.VWFAC_007
                             where q.IdEmpresa == IdEmpresa &&
                             q.IdSucursal == IdSucursal &&
                             q.IdBodega == IdBodega &&
                             q.IdCbteVta == IdCbteVta
                             select new FAC_007_Info
                    {
                        cli_cedulaRuc = q.cli_cedulaRuc,
                        cli_correo = q.cli_correo,
                        cli_direccion = q.cli_direccion,
                        cli_Nombre = q.cli_Nombre,
                        cli_Telefonos = q.cli_Telefonos,
                        DescuentoTotal = q.DescuentoTotal,
                        Fecha_Autorizacion = q.Fecha_Autorizacion,
                        FormaPago = q.FormaPago,
                        FormaDePago = q.FormaDePago,
                        nom_FormaPago = q.nom_FormaPago,
                        IdBodega = q.IdBodega,
                        IdCatalogo_FormaPago = q.IdCatalogo_FormaPago,
                        IdCbteVta = q.IdCbteVta,
                        IdEmpresa = q.IdEmpresa,
                        IdProducto = q.IdProducto,
                        IdSucursal = q.IdSucursal,
                        pr_descripcion = q.pr_descripcion,
                        Secuencia = q.Secuencia,
                        SubtotalConDscto = q.SubtotalConDscto,
                        SubtotalIVA = q.SubtotalIVA,
                        SubtotalSinDscto = q.SubtotalSinDscto,
                        SubtotalSinIVA = q.SubtotalSinIVA,
                        Su_Descripcion = q.Su_Descripcion,
                        Su_Direccion = q.Su_Direccion,
                        Su_Telefonos = q.Su_Telefonos,
                        vt_autorizacion = q.vt_autorizacion,
                        Cambio = q.Cambio,
                        vt_cantidad = q.vt_cantidad,
                        vt_fecha = q.vt_fecha,
                        vt_iva = q.vt_iva,
                        vt_NumFactura = q.vt_NumFactura,
                        vt_por_iva = q.vt_por_iva,
                        vt_Precio = q.vt_Precio,
                        Total = q.Total,
                        ValorEfectivo = q.ValorEfectivo,
                        vt_Observacion = q.vt_Observacion,

                        Descuento = q.Descuento,
                        SubtotalIVAConDscto = q.SubtotalIVAConDscto,
                        SubtotalIVASinDscto = q.SubtotalIVASinDscto,
                        SubtotalSinIVAConDscto = q.SubtotalSinIVAConDscto,
                        SubtotalSinIVASinDscto = q.SubtotalSinIVASinDscto,
                        T_SubtotalConDscto = q.T_SubtotalConDscto,
                        T_SubtotalSinDscto = q.T_SubtotalSinDscto,
                        ValorIVA = q.ValorIVA,
                        vt_total = q.vt_total,

                        vt_detallexItems = q.vt_detallexItems,
                        vt_plazo = q.vt_plazo
                    }).ToList();
                }

                if (Lista.Count > 0)
                {
                    var Detalle = Lista[0];
                    if (string.IsNullOrEmpty(Detalle.vt_autorizacion))
                    {
                        tb_empresa_Data odataEmpresa = new tb_empresa_Data();
                        tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data();
                        string[] Array = Detalle.vt_NumFactura.Split('-');
                        if (Array.Count() == 3)
                        {
                            string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.vt_fecha, "01", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Array[2]);
                            Lista.ForEach(q => q.vt_autorizacion = ClaveAcceso);
                        }
                    }
                }
                return(Lista);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #11
0
        public bool guardarDB(fa_guia_remision_Info info)
        {
            fa_PuntoVta_Info punto_venta = new fa_PuntoVta_Info();

            punto_venta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta);

            try
            {
                int secuencia = 1;
                using (Entities_facturacion Context = new Entities_facturacion())
                {
                    fa_guia_remision Entity = new fa_guia_remision
                    {
                        IdEmpresa              = info.IdEmpresa,
                        IdSucursal             = info.IdSucursal,
                        IdPuntoVta             = info.IdPuntoVta,
                        IdBodega               = info.IdBodega,
                        IdGuiaRemision         = info.IdGuiaRemision = get_id(info.IdEmpresa),
                        CodGuiaRemision        = info.CodGuiaRemision,
                        CodDocumentoTipo       = info.CodDocumentoTipo,
                        Serie1                 = info.Serie1,
                        Serie2                 = info.Serie2,
                        NumGuia_Preimpresa     = info.NumGuia_Preimpresa,
                        NUAutorizacion         = info.NUAutorizacion,
                        Fecha_Autorizacion     = info.Fecha_Autorizacion,
                        IdCliente              = info.IdCliente,
                        IdTransportista        = info.IdTransportista,
                        gi_fecha               = info.gi_fecha.Date,
                        gi_plazo               = info.gi_plazo,
                        gi_fech_venc           = info.gi_fech_venc,
                        gi_Observacion         = info.gi_Observacion,
                        gi_FechaInicioTraslado = info.gi_FechaInicioTraslado.Date,
                        gi_FechaFinTraslado    = info.gi_FechaFinTraslado.Date,
                        placa             = info.placa,
                        Direccion_Destino = info.Direccion_Destino,
                        Direccion_Origen  = info.Direccion_Origen,
                        IdMotivoTraslado  = info.IdMotivoTraslado,
                        Estado            = info.Estado = true,
                        IdUsuarioCreacion = info.IdUsuarioCreacion,
                        FechaCreacion     = info.FechaCreacion = DateTime.Now
                    };

                    foreach (var item in info.lst_detalle)
                    {
                        Context.fa_guia_remision_det.Add(new fa_guia_remision_det
                        {
                            IdEmpresa        = info.IdEmpresa,
                            IdSucursal       = info.IdSucursal,
                            IdBodega         = info.IdBodega,
                            IdGuiaRemision   = info.IdGuiaRemision,
                            Secuencia        = secuencia,
                            IdProducto       = item.IdProducto,
                            gi_cantidad      = item.gi_cantidad,
                            gi_detallexItems = item.gi_detallexItems,
                            gi_precio        = item.gi_precio,
                            gi_por_desc      = item.gi_por_desc,
                            gi_descuentoUni  = item.gi_descuentoUni,
                            gi_PrecioFinal   = item.gi_PrecioFinal,
                            gi_Subtotal      = item.gi_Subtotal,
                            IdCod_Impuesto   = item.IdCod_Impuesto,
                            gi_por_iva       = item.gi_por_iva,
                            gi_Iva           = item.gi_Iva,
                            gi_Total         = item.gi_Total
                        });

                        if (item.IdCbteVta != null && item.IdCbteVta != 0)
                        {
                            Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura
                            {
                                IdEmpresa_fact      = info.IdEmpresa,
                                IdSucursal_fact     = info.IdSucursal,
                                IdBodega_fact       = info.IdBodega,
                                IdCbteVta_fact      = Convert.ToDecimal(item.IdCbteVta),
                                IdGuiaRemision_guia = info.IdGuiaRemision,
                                Secuencia_fact      = Convert.ToInt32(item.Secuencia_fact),
                                Secuencia_guia      = secuencia,
                                IdBodega_guia       = info.IdBodega,
                                IdSucursal_guia     = info.IdSucursal,
                                IdEmpresa_guia      = info.IdEmpresa
                            });
                        }

                        secuencia++;
                    }

                    foreach (var item in info.lst_detalle_x_factura)
                    {
                        if (item.IdCbteVta != 0)
                        {
                            Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision
                            {
                                fa_IdEmpresa      = info.IdEmpresa,
                                fa_IdSucursal     = info.IdSucursal,
                                fa_IdBodega       = info.IdBodega,
                                fa_IdCbteVta      = item.IdCbteVta,
                                gi_IdEmpresa      = info.IdEmpresa,
                                gi_IdSucursal     = info.IdSucursal,
                                gi_IdBodega       = info.IdBodega,
                                gi_IdGuiaRemision = info.IdGuiaRemision
                            });
                        }
                    }

                    #region Talonario
                    fa_PuntoVta_Info info_puntovta = new fa_PuntoVta_Info();
                    tb_sis_Documento_Tipo_Talonario_Info info_talonario   = new tb_sis_Documento_Tipo_Talonario_Info();
                    tb_sis_Documento_Tipo_Talonario_Info ultimo_talonario = new tb_sis_Documento_Tipo_Talonario_Info();
                    tb_sis_Documento_Tipo_Talonario_Data data_talonario   = new tb_sis_Documento_Tipo_Talonario_Data();
                    info_puntovta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta);

                    if (info_puntovta != null)
                    {
                        if (info_puntovta.EsElectronico == true)
                        {
                            ultimo_talonario = data_talonario.GetUltimoNoUsado(info.IdEmpresa, info_puntovta.codDocumentoTipo, info_puntovta.Su_CodigoEstablecimiento, info_puntovta.cod_PuntoVta, info_puntovta.EsElectronico, true);

                            if (ultimo_talonario != null)
                            {
                                Entity.Serie1             = info.Serie1 = ultimo_talonario.Establecimiento;
                                Entity.Serie2             = info.Serie2 = ultimo_talonario.PuntoEmision;
                                Entity.NumGuia_Preimpresa = info.NumGuia_Preimpresa = ultimo_talonario.NumDocumento;
                            }
                        }
                        else
                        {
                            info_talonario.IdEmpresa        = info.IdEmpresa;
                            info_talonario.CodDocumentoTipo = info.CodDocumentoTipo;
                            info_talonario.Establecimiento  = info.Serie1;
                            info_talonario.PuntoEmision     = info.Serie2;
                            info_talonario.NumDocumento     = info.NumGuia_Preimpresa;
                            info_talonario.IdSucursal       = info.IdSucursal;
                            info_talonario.Usado            = true;
                            data_talonario.modificar_estado_usadoDB(info_talonario);
                        }
                    }

                    #endregion
                    Context.fa_guia_remision.Add(Entity);
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "fa_guia_remision_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }