Ejemplo n.º 1
0
        public fa_factura_det_Info existe_factura_det(int IdEmpresa, int IdSucursal, decimal IdProforma, int Secuencia_pf)
        {
            try
            {
                fa_factura_det_Info info = new fa_factura_det_Info();
                using (SqlConnection connection = new SqlConnection(ConexionesERP.GetConnectionString()))
                {
                    connection.Open();

                    #region Query
                    string query = "select * from fa_factura_det d where d.IdEmpresa_pf = " + IdEmpresa + " and d.IdSucursal_pf= " + IdSucursal + " and d.IdProforma = " + IdProforma + " and d.Secuencia_pf = " + Secuencia_pf;
                    #endregion

                    SqlCommand    command = new SqlCommand(query, connection);
                    SqlDataReader reader  = command.ExecuteReader();
                    while (reader.Read())
                    {
                        info = new fa_factura_det_Info
                        {
                            IdEmpresa          = Convert.ToInt32(reader["IdEmpresa"]),
                            IdSucursal         = Convert.ToInt32(reader["IdSucursal"]),
                            IdProforma         = Convert.ToDecimal(reader["IdProforma"]),
                            Secuencia          = Convert.ToInt32(reader["Secuencia"]),
                            IdProducto         = Convert.ToInt32(reader["IdProducto"]),
                            vt_cantidad        = Convert.ToDouble(reader["vt_cantidad"]),
                            vt_Precio          = Convert.ToDouble(reader["vt_Precio"]),
                            vt_Subtotal        = Convert.ToDouble(reader["vt_Subtotal"]),
                            vt_iva             = Convert.ToDouble(reader["vt_iva"]),
                            vt_PorDescUnitario = Convert.ToDouble(reader["vt_PorDescUnitario"]),
                            vt_por_iva         = Convert.ToDouble(reader["vt_por_iva"]),
                            vt_total           = Convert.ToDouble(reader["vt_total"]),
                            IdCod_Impuesto_Iva = reader["IdCod_Impuesto_Iva"].ToString(),
                            IdEmpresa_pf       = string.IsNullOrEmpty(reader["IdEmpresa_pf"].ToString()) ? (int?)null : Convert.ToInt32(reader["IdEmpresa_pf"]),
                            IdSucursal_pf      = string.IsNullOrEmpty(reader["IdSucursal_pf"].ToString()) ? (int?)null : Convert.ToInt32(reader["IdSucursal_pf"]),
                            Secuencia_pf       = string.IsNullOrEmpty(reader["Secuencia_pf"].ToString()) ? (int?)null : Convert.ToInt32(reader["Secuencia_pf"])
                        };
                    }
                    reader.Close();
                }

                return(info);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Ejemplo n.º 2
0
        public bool modificarDB(fa_guia_remision_Info info)
        {
            try
            {
                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);
                int secuencia = 1;

                using (Entities_facturacion Context = new Entities_facturacion())
                {
                    fa_guia_remision Entity = Context.fa_guia_remision.FirstOrDefault(q => q.IdGuiaRemision == info.IdGuiaRemision);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.CodGuiaRemision        = info.CodGuiaRemision;
                    Entity.CodDocumentoTipo       = info.CodDocumentoTipo;
                    Entity.NUAutorizacion         = info.NUAutorizacion;
                    Entity.Fecha_Autorizacion     = info.Fecha_Autorizacion;
                    Entity.IdCliente              = info.IdCliente;
                    Entity.IdTransportista        = info.IdTransportista;
                    Entity.gi_fecha               = info.gi_fecha.Date;
                    Entity.gi_plazo               = info.gi_plazo;
                    Entity.gi_fech_venc           = info.gi_fech_venc;
                    Entity.gi_FechaInicioTraslado = info.gi_FechaInicioTraslado.Date;
                    Entity.gi_FechaFinTraslado    = info.gi_FechaFinTraslado.Date;
                    Entity.placa                 = info.placa;
                    Entity.Direccion_Destino     = info.Direccion_Destino;
                    Entity.Direccion_Origen      = info.Direccion_Origen;
                    Entity.IdMotivoTraslado      = info.IdMotivoTraslado;
                    Entity.FechaModificacion     = info.FechaModificacion = DateTime.Now;
                    Entity.IdUsuarioModificacion = info.IdUsuarioModificacion;
                    Entity.gi_Observacion        = info.gi_Observacion;
                    Entity.IdCbteVta             = info.IdCbteVta;
                    Entity.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 != 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 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>();
                        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;

                        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_fact.IdEmpresa,
                            IdSucursal = info_fact.IdSucursal,
                            IdBodega   = info_fact.IdBodega,
                            // IdCbteVta = info_fact.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.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 = "modificarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }
Ejemplo n.º 3
0
        public JsonResult AgregarPedido(string SecuencialID = "", decimal IdTransaccionSession = 0)
        {
            int IdEmpresa  = Convert.ToInt32(SecuencialID.Substring(0, 4));
            int IdProducto = Convert.ToInt32(SecuencialID.Substring(4, 6));

            var producto = bus_producto.get_info(IdEmpresa, IdProducto);

            double subtotal         = 0;
            double iva_porc         = 0;
            double iva              = 0;
            double total            = 0;
            double Subtotal_Detalle = 0;
            double Iva_Detalle      = 0;
            double Total_Detalle    = 0;

            var impuesto = bus_impuesto.get_info(producto.IdCod_Impuesto_Iva);

            if (impuesto != null)
            {
                iva_porc = impuesto.porcentaje;
            }

            subtotal = 1 * producto.precio_1;
            iva      = Math.Round((subtotal * (iva_porc / 100)), 2);
            total    = Math.Round((subtotal + iva), 2);

            var lst_actual = List_det.get_list(IdTransaccionSession);
            var info_det   = new fa_factura_det_Info
            {
                IdEmpresa          = IdEmpresa,
                Secuencia          = lst_actual.Count + 1,
                IdProducto         = producto.IdProducto,
                pr_descripcion     = producto.pr_descripcion,
                vt_cantidad        = 1,
                vt_PorDescUnitario = 0,
                vt_Precio          = producto.precio_1,
                vt_DescUnitario    = 0,
                vt_PrecioFinal     = producto.precio_1 - 0,
                vt_Subtotal        = subtotal,
                tp_manejaInven     = producto.tp_ManejaInven,
                se_distribuye      = producto.se_distribuye,
                vt_detallexItems   = "",
                IdCod_Impuesto_Iva = producto.IdCod_Impuesto_Iva,
                //vt_Subtotal_item = 0,
                //vt_iva_item=0,
                //vt_total_item=0,
                vt_iva     = iva,
                vt_total   = total,
                vt_por_iva = iva_porc
            };

            var existe_producto = lst_actual.Where(q => q.IdEmpresa == IdEmpresa && q.IdProducto == IdProducto).FirstOrDefault();

            if (existe_producto == null)
            {
                lst_actual.Add(info_det);
            }
            else
            {
                var cantidad = existe_producto.vt_cantidad + 1;
                subtotal = cantidad * producto.precio_1;
                iva      = Math.Round((subtotal * (iva_porc / 100)), 2);
                total    = Math.Round((subtotal + iva), 2);

                //lst_actual.ForEach(q=> q.vt_cantidad = (q.Secuencia== existe_producto.Secuencia ? cantidad : q.vt_cantidad));
                lst_actual.Where(q => q.Secuencia == existe_producto.Secuencia).ToList().ForEach(q => { q.vt_cantidad = cantidad; q.vt_iva = iva; q.vt_Subtotal = subtotal; q.vt_total = total; });
            }

            List_det.set_list(lst_actual, IdTransaccionSession);
            Subtotal_Detalle = (double)Math.Round(lst_actual.Sum(q => q.vt_Subtotal), 2, MidpointRounding.AwayFromZero);
            Iva_Detalle      = (double)Math.Round(lst_actual.Sum(q => q.vt_iva), 2, MidpointRounding.AwayFromZero);
            Total_Detalle    = (double)Math.Round(lst_actual.Sum(q => q.vt_total), 2, MidpointRounding.AwayFromZero);

            var NombreProducto = producto.pr_descripcion;

            return(Json(new { Producto = NombreProducto, subtotal = Subtotal_Detalle.ToString("C2"), iva = Iva_Detalle.ToString("C2"), total = Total_Detalle.ToString("C2") }, JsonRequestBehavior.AllowGet));
        }