Beispiel #1
0
        static List <gsGuia_BuscarDetalleResult> GuiaVenta_ObtenerDetalle(gsOV_BuscarCabeceraResult objOrdenVentaCab_R,
                                                                          gsOV_BuscarDetalleResult[] objOrdenVentaDet, int idEmpresa, int codigoUsuario)
        {
            List <gsGuia_BuscarDetalleResult> lstPedidoDet = new List <gsGuia_BuscarDetalleResult>();
            gsGuia_BuscarDetalleResult        objProducto;

            try
            {
                foreach (gsOV_BuscarDetalleResult producto in objOrdenVentaDet)
                {
                    objProducto = new gsGuia_BuscarDetalleResult();

                    // exec VBG00495 @p1 output,19250,'OV',51646,'10210109009418',NULL,
                    // NULL,NULL,NULL,202,48.0000,0.0000,0.0000,48.0000,0.0000,'Unidad',1.0000,48.0000,'Unidad',48.0000,'Unidad',48.0000,NULL

                    objProducto.ID_Amarre    = 0; //Amarre Guia
                    objProducto.Op           = 0;
                    objProducto.TablaOrigen  = "OV";
                    objProducto.Linea        = producto.ID_Amarre;
                    objProducto.ID_Item      = producto.ID_Item;
                    objProducto.ID_ItemAnexo = producto.ID_ItemAnexo;

                    objProducto.ID_CCosto         = producto.ID_CCosto;
                    objProducto.ID_UnidadGestion  = producto.ID_UnidadGestion;
                    objProducto.ID_UnidadProyecto = producto.ID_UnidadProyecto;
                    objProducto.Item_ID           = producto.Item_ID;

                    objProducto.CantidadBruta = producto.Cantidad;
                    objProducto.Bultos        = 0;
                    objProducto.Tara          = 0;
                    objProducto.Cantidad      = producto.Cantidad;
                    objProducto.Ajuste        = 0;

                    objProducto.ID_UnidadInv      = producto.ID_UnidadInv;
                    objProducto.FactorUnidadInv   = producto.FactorUnidadInv;
                    objProducto.CantidadUnidadInv = producto.CantidadUnidadInv; // Consultar como se calcula realmente

                    objProducto.ID_UnidadDoc          = producto.ID_UnidadDoc;
                    objProducto.CantidadUnidadDoc     = producto.CantidadUnidadDoc; // Consultar como se calcula realmente
                    objProducto.ID_UnidadControl      = producto.ID_UnidadDoc;
                    objProducto.CantidadUnidadControl = producto.CantidadUnidadDoc;
                    objProducto.Observaciones         = producto.Observaciones;

                    objProducto.Estado = (int)producto.Estado;

                    lstPedidoDet.Add(objProducto);
                }
                return(lstPedidoDet);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #2
0
        static gsOV_BuscarCabeceraResult OrdenVenta_ObtenerCabecera(gsOV_BuscarCabeceraResult objOrdenVentaCab_R, string idOrdenVenta,
                                                                    gsOV_BuscarImpuestoResult[] lstImpuestos, ref List <GlosaBE> Impuesto_Obtener_R)
        {
            gsOV_BuscarCabeceraResult objOrdenVentaCab;
            decimal impuesto = 0;

            try
            {
                List <GlosaBE> lstGlosaR = new List <GlosaBE>();

                objOrdenVentaCab           = new gsOV_BuscarCabeceraResult();
                objOrdenVentaCab.ID_Agenda = objOrdenVentaCab_R.ID_Agenda; // lblCodigoCliente.Value;
                if (!string.IsNullOrEmpty(objOrdenVentaCab_R.NoRegistro))
                {
                    objOrdenVentaCab.NoRegistro = objOrdenVentaCab_R.NoRegistro;
                }
                else
                {
                    objOrdenVentaCab.NoRegistro = "0";
                }


                if (idOrdenVenta == "0")
                {
                    objOrdenVentaCab.FechaDespacho = DateTime.Now.Date;
                    objOrdenVentaCab.FechaEntrega  = DateTime.Now.Date;
                    objOrdenVentaCab.FechaVigencia = DateTime.Now.Date;
                    objOrdenVentaCab.FechaEmision  = DateTime.Now.Date;
                }
                else
                {
                    objOrdenVentaCab.FechaDespacho = objOrdenVentaCab_R.FechaOrden;
                    objOrdenVentaCab.FechaEntrega  = objOrdenVentaCab_R.FechaOrden;
                    objOrdenVentaCab.FechaVigencia = objOrdenVentaCab_R.FechaOrden;
                    objOrdenVentaCab.FechaEmision  = objOrdenVentaCab_R.FechaOrden;
                }

                // OLD
                //objOrdenVentaCab.FechaOrden = dpFechaEmision.SelectedDate.Value;
                objOrdenVentaCab.FechaOrden = (DateTime)objOrdenVentaCab_R.FechaEmision;
                //objOrdenVentaCab.FechaVencimiento = dpFechaVencimiento.SelectedDate.Value;
                objOrdenVentaCab.FechaVencimiento = (DateTime)objOrdenVentaCab_R.FechaVencimiento;
                //objOrdenVentaCab.ID_Envio = int.Parse(cboTipoEnvio.SelectedValue);
                objOrdenVentaCab.ID_Envio = objOrdenVentaCab_R.ID_Envio;
                objOrdenVentaCab.ID_AgendaAnexoReferencia = null;


                //if (cboReferencia.SelectedValue != "-1")
                //    objOrdenVentaCab.ID_AgendaAnexoReferencia = int.Parse(cboReferencia.SelectedValue);
                //else
                //    objOrdenVentaCab.ID_AgendaAnexoReferencia = null;

                //objOrdenVentaCab.ID_Vendedor = acbVendedor.Text.Split('-')[0].Trim();
                objOrdenVentaCab.ID_Vendedor = objOrdenVentaCab_R.ID_Vendedor;

                objOrdenVentaCab.ID_Moneda = objOrdenVentaCab_R.ID_Moneda;


                //-------------------------- Cargar Glosa--------------------------------

                //lstGlosa = JsonHelper.JsonDeserialize<List<GlosaBE>>((string)ViewState["lstGlosa"]);
                lstGlosaR = Cargar_Glosa();
                lstGlosaR.Find(x => x.Descripcion == "Neto").Importe      = objOrdenVentaCab_R.Neto;
                lstGlosaR.Find(x => x.Descripcion == "Descuento").Importe = objOrdenVentaCab_R.Dcto;
                lstGlosaR.Find(x => x.Descripcion == "SubTotal").Importe  = objOrdenVentaCab_R.SubTotal;
                lstGlosaR.Find(x => x.Descripcion == "Total").Importe     = objOrdenVentaCab_R.Total;

                foreach (gsOV_BuscarImpuestoResult objImpuesto in lstImpuestos)
                {
                    GlosaBE objGlosaBE = new GlosaBE();
                    objGlosaBE.IdGlosa       = objImpuesto.ID_Impuesto;
                    objGlosaBE.Descripcion   = objImpuesto.Abreviacion;
                    objGlosaBE.Importe       = objImpuesto.Importe;
                    objGlosaBE.BaseImponible = objImpuesto.BaseImponible;
                    lstGlosaR.Add(objGlosaBE);
                }

                //grdGlosa.DataSource = lstGlosa.OrderBy(x => x.IdGlosa);
                //grdGlosa.DataBind();
                //ViewState["lstGlosa"] = JsonHelper.JsonSerializer(lstGlosa);
                //-------------------------------------------------------------------


                //List<GlosaBE> lstGlosa = JsonHelper.JsonDeserialize<List<GlosaBE>>((string)ViewState["lstGlosa"]);
                List <GlosaBE> lstGlosa = lstGlosaR;

                objOrdenVentaCab.Neto     = lstGlosa.Find(x => x.Descripcion == "Neto").Importe;
                objOrdenVentaCab.Dcto     = lstGlosa.Find(x => x.Descripcion == "Descuento").Importe;
                objOrdenVentaCab.SubTotal = lstGlosa.Find(x => x.Descripcion == "SubTotal").Importe;
                objOrdenVentaCab.Total    = lstGlosa.Find(x => x.Descripcion == "Total").Importe;

                lstGlosa = (lstGlosaR.FindAll(x => x.Descripcion != "Neto" && x.Descripcion != "Descuento" && x.Descripcion != "SubTotal" && x.Descripcion != "Total"));
                foreach (GlosaBE objGlosaBE in lstGlosa)
                {
                    impuesto = impuesto + objGlosaBE.Importe;
                }

                Impuesto_Obtener_R = Impuesto_Obtener(lstGlosaR);

                objOrdenVentaCab.Impuestos = Math.Round(impuesto, 4);
                //objOrdenVentaCab.Observaciones = txtObservacion.Text;
                objOrdenVentaCab.Observaciones = objOrdenVentaCab_R.Observaciones;

                //objOrdenVentaCab.Prioridad = cboPrioridad.SelectedIndex;
                //Verificar
                objOrdenVentaCab.Prioridad = objOrdenVentaCab_R.Prioridad;

                objOrdenVentaCab.EntregaParcial = false; //Flag para poder hacer entregas parcialmente
                objOrdenVentaCab.Estado         = 376;   //Cuenta Corriente en StandBy
                objOrdenVentaCab.Id_Pago        = objOrdenVentaCab_R.Id_Pago;

                //if (cboSucursal.SelectedValue != "-1")
                //    objOrdenVentaCab.ID_AgendaAnexo = int.Parse(cboSucursal.SelectedValue);
                //else
                //    objOrdenVentaCab.ID_AgendaAnexo = null;

                objOrdenVentaCab.ID_AgendaAnexo = objOrdenVentaCab_R.ID_AgendaAnexo;


                //objOrdenVentaCab.TEA = decimal.Parse(txtTEA.Text);
                objOrdenVentaCab.TEA = objOrdenVentaCab_R.TEA;

                //objOrdenVentaCab.ID_AgendaDireccion = int.Parse(cboFacturacion.SelectedValue);
                objOrdenVentaCab.ID_AgendaDireccion = objOrdenVentaCab_R.ID_AgendaDireccion;

                //objOrdenVentaCab.ID_AgendaDireccion2 = int.Parse(cboDespacho.SelectedValue);
                objOrdenVentaCab.ID_AgendaDireccion2 = objOrdenVentaCab_R.ID_AgendaDireccion2;

                objOrdenVentaCab.ModoPago      = null; //No estoy seguro
                objOrdenVentaCab.NotasDespacho = null;
                //objOrdenVentaCab.ID_CondicionCredito = int.Parse(cboTipoCredito.SelectedValue.Split(',')[0]);
                objOrdenVentaCab.ID_CondicionCredito = objOrdenVentaCab_R.ID_CondicionCredito;


                //if (string.IsNullOrEmpty(txtOrden.Text))
                //    objOrdenVentaCab.NroOrdenCliente = null;
                //else
                //    objOrdenVentaCab.NroOrdenCliente = txtOrden.Text;
                objOrdenVentaCab.NroOrdenCliente = objOrdenVentaCab_R.NroOrdenCliente;


                objOrdenVentaCab.ID_NaturalezaGastoIngreso  = null;
                objOrdenVentaCab.ID_AgendaOrigen            = null;
                objOrdenVentaCab.DireccionOrigenSucursal    = null;
                objOrdenVentaCab.DireccionOrigenReferencia  = null;
                objOrdenVentaCab.DireccionOrigenDireccion   = null;
                objOrdenVentaCab.ID_AgendaDestino           = null;
                objOrdenVentaCab.DireccionDestinoSucursal   = null;
                objOrdenVentaCab.DireccionDestinoReferencia = null;
                objOrdenVentaCab.DireccionDestinoDireccion  = null;

                //objOrdenVentaCab.ID_TipoDespacho = int.Parse(cboOpDespacho.SelectedValue);
                objOrdenVentaCab.ID_TipoDespacho = objOrdenVentaCab_R.ID_TipoDespacho;
                //objOrdenVentaCab.ID_TipoPedido = int.Parse(cboOpTipoPedido.SelectedValue);
                objOrdenVentaCab.ID_TipoPedido = objOrdenVentaCab_R.ID_TipoPedido;
                //objOrdenVentaCab.ID_DocumentoVenta = int.Parse(cboOpDocVenta.SelectedValue);
                objOrdenVentaCab.ID_DocumentoVenta = objOrdenVentaCab_R.ID_DocumentoVenta;
                //objOrdenVentaCab.ID_Almacen = int.Parse(cboAlmacen.SelectedValue);
                objOrdenVentaCab.ID_Almacen = objOrdenVentaCab_R.ID_Almacen;


                objOrdenVentaCab.ID_Transportista          = null;
                objOrdenVentaCab.ID_Chofer                 = null;
                objOrdenVentaCab.ID_Vehiculo1              = null;
                objOrdenVentaCab.ID_Vehiculo2              = null;
                objOrdenVentaCab.ID_Vehiculo3              = null;
                objOrdenVentaCab.HoraAtencionOpcion1_Desde = 0;
                objOrdenVentaCab.HoraAtencionOpcion1_Hasta = 0;
                objOrdenVentaCab.HoraAtencionOpcion2_Desde = 0;
                objOrdenVentaCab.HoraAtencionOpcion2_Hasta = 0;
                objOrdenVentaCab.HoraAtencionOpcion3_Desde = 0;
                objOrdenVentaCab.HoraAtencionOpcion3_Hasta = 0;

                //if (cboSede.SelectedValue != "-1")
                //    objOrdenVentaCab.ID_Sede = int.Parse(cboSede.SelectedValue);
                //else
                //    objOrdenVentaCab.ID_Sede = null;

                objOrdenVentaCab.ID_Sede = objOrdenVentaCab_R.ID_Sede;

                objOrdenVentaCab.Contacto = null;
                //if (acbContacto.Entries.Count <= 0)
                //    objOrdenVentaCab.Contacto = null;
                //else
                //    objOrdenVentaCab.Contacto = acbContacto.Entries[0].Text.Split('-')[0];

                //if (acbTransporte.Entries.Count <= 0)
                //{
                //    objOrdenVentaCab.ID_Transportista = null;
                //    objOrdenVentaCab.ID_AgendaDestino = null;
                //}
                //else
                //{
                //    objOrdenVentaCab.ID_Transportista = lblTrans.Text;
                //    objOrdenVentaCab.ID_AgendaDestino = acbTransporte.Entries[0].Text.Split('-')[0];
                //}
                objOrdenVentaCab.ID_Transportista = objOrdenVentaCab_R.ID_Transportista;
                objOrdenVentaCab.ID_AgendaDestino = objOrdenVentaCab_R.ID_AgendaDestino;


                return(objOrdenVentaCab);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #3
0
        static List <gsOV_BuscarDetalleResult> OrdenVenta_ObtenerDetalle(gsOV_BuscarCabeceraResult objOrdenVentaCab_R,
                                                                         gsOV_BuscarDetalleResult[] objOrdenVentaDet, int idEmpresa, int codigoUsuario)
        {
            ImpuestoWCFClient objImpuestoWCF = new ImpuestoWCFClient();

            gsOV_BuscarImpuestoResult[]     lstImpuestos = null;
            List <gsOV_BuscarDetalleResult> lstPedidoDet;
            List <gsItem_BuscarResult>      lstProductos = new List <gsItem_BuscarResult>(); // = (List<gsItem_BuscarResult>)Session["lstProductos"];
            //List<gsItem_BuscarResult> lstProductosR = new List<gsItem_BuscarResult>();
            gsOV_BuscarDetalleResult objProducto;
            List <gsImpuesto_ListarPorItemResult> lstImpuestoItem = new List <gsImpuesto_ListarPorItemResult>();
            DateTime fecha;

            try
            {
                foreach (gsOV_BuscarDetalleResult objDetalle in objOrdenVentaDet)
                {
                    gsItem_BuscarResult objItem = new gsItem_BuscarResult();

                    objItem.Codigo           = objDetalle.ID_Item;
                    objItem.Cantidad         = Convert.ToInt32(objDetalle.Cantidad);
                    objItem.DctoMax          = objDetalle.DctoMax;
                    objItem.Descuento        = objDetalle.Dcto;
                    objItem.ID_Moneda        = objDetalle.ID_Moneda;
                    objItem.ID_UnidadControl = objDetalle.ID_UnidadDoc;
                    objItem.ID_UnidadInv     = objDetalle.ID_UnidadInv;
                    objItem.Importe          = objDetalle.Importe;
                    objItem.Item             = objDetalle.Item;
                    objItem.Item_ID          = objDetalle.Item_ID;
                    objItem.NombreMoneda     = objDetalle.NombreMoneda;
                    objItem.Observacion      = objDetalle.Observaciones;
                    objItem.Precio           = objDetalle.Precio;
                    objItem.PrecioInicial    = objDetalle.PrecioMinimo;
                    objItem.Signo            = objDetalle.Signo;
                    if (objOrdenVentaCab_R.Aprobacion1)
                    {
                        objItem.Stock = objDetalle.Stock + objDetalle.Cantidad;
                    }
                    else
                    {
                        objItem.Stock = objDetalle.Stock;
                    }
                    objItem.FactorUnidadInv    = objDetalle.FactorUnidadInv;
                    objItem.UnidadPresentacion = objDetalle.UnidadPresentacion;
                    objItem.ID_Amarre          = objDetalle.ID_Amarre;
                    objItem.Estado             = 1;
                    objItem.CostoUnitario      = objDetalle.CostoUnitario;
                    lstImpuestoItem.AddRange(objImpuestoWCF.Impuesto_ListarPorItem(idEmpresa, codigoUsuario, objDetalle.ID_Item, DateTime.Now));
                    //ViewState["fecha"] = objOrdenVentaCab.FechaOrden;
                    fecha = objOrdenVentaCab_R.FechaOrden;
                    lstProductos.Add(objItem);
                }

                //Session["lstProductos"] = lstProductos;
                //Session["lstImpuestos"] = lstImpuestoItem;


                lstPedidoDet = new List <gsOV_BuscarDetalleResult>();
                foreach (gsItem_BuscarResult producto in lstProductos)
                {
                    objProducto               = new gsOV_BuscarDetalleResult();
                    objProducto.ID_Amarre     = producto.ID_Amarre;
                    objProducto.TablaOrigen   = "OV";
                    objProducto.ID_Item       = producto.Codigo;
                    objProducto.ID_ItemPedido = null;
                    objProducto.Item_ID       = producto.Item_ID;
                    objProducto.Cantidad      = producto.Cantidad;
                    objProducto.Precio        = producto.Precio;
                    objProducto.Dcto          = producto.Descuento;
                    //objProducto.DctoValor = Math.Round(producto.Descuento * producto.Precio / 100, 2);
                    objProducto.DctoValor         = Math.Round(((producto.Descuento / 100)) * producto.Precio, 4);
                    objProducto.Importe           = producto.Importe;
                    objProducto.ID_ItemAnexo      = null;
                    objProducto.ID_CCosto         = null;
                    objProducto.ID_UnidadGestion  = null;
                    objProducto.ID_UnidadProyecto = null;
                    objProducto.ID_UnidadInv      = producto.ID_UnidadInv;
                    objProducto.FactorUnidadInv   = producto.FactorUnidadInv;
                    objProducto.CantidadUnidadInv = producto.Cantidad; // Consultar como se calcula realmente
                    objProducto.ID_UnidadDoc      = producto.ID_UnidadControl;
                    objProducto.CantidadUnidadDoc = producto.Cantidad; // Consultar como se calcula realmente
                    objProducto.Observaciones     = producto.Observacion;
                    objProducto.Estado            = (int)producto.Estado;
                    objProducto.Stock             = producto.Stock;

                    lstPedidoDet.Add(objProducto);
                }
                return(lstPedidoDet);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #4
0
        static gsGuia_BuscarCabeceraResult GuiaVenta_ObtenerCabecera(gsOV_BuscarCabeceraResult objOrdenVentaCab_R, decimal idGuiaVenta)
        {
            gsGuia_BuscarCabeceraResult objGuiaVentaCab;

            try
            {
                objGuiaVentaCab = new gsGuia_BuscarCabeceraResult();

                objGuiaVentaCab.Op                  = idGuiaVenta;
                objGuiaVentaCab.ID_Almacen          = objOrdenVentaCab_R.ID_AgendaOrigen.ToString();
                objGuiaVentaCab.Fecha               = DateTime.Now;
                objGuiaVentaCab.FechaInicioTraslado = DateTime.Now;
                objGuiaVentaCab.ID_MotivoTraslado   = 1;
                objGuiaVentaCab.Serie               = string.Empty; // Revisar
                objGuiaVentaCab.Numero              = 0;            // Revisar
                objGuiaVentaCab.ID_Agenda           = objOrdenVentaCab_R.ID_Agenda;

                objGuiaVentaCab.ID_Envio      = (decimal)objOrdenVentaCab_R.ID_Envio; // 2
                objGuiaVentaCab.Observaciones = objOrdenVentaCab_R.Observaciones;

                objGuiaVentaCab.Transportista  = objOrdenVentaCab_R.Transporte; // Revisar
                objGuiaVentaCab.Chofer         = null;
                objGuiaVentaCab.ID_AgendaAnexo = objOrdenVentaCab_R.ID_AgendaAnexo;

                objGuiaVentaCab.ID_AlmacenAnexo     = (decimal)objOrdenVentaCab_R.ID_Almacen; // ID_AlmacenAnexo
                objGuiaVentaCab.ID_AgendaDireccion  = objOrdenVentaCab_R.ID_AgendaDireccion;
                objGuiaVentaCab.ID_AgendaDireccion2 = objOrdenVentaCab_R.ID_AgendaDireccion2;
                objGuiaVentaCab.ID_Transportista    = objOrdenVentaCab_R.ID_Transportista;

                objGuiaVentaCab.ID_Vehiculo   = objOrdenVentaCab_R.ID_Vehiculo1;
                objGuiaVentaCab.ID_Vehiculo2  = objOrdenVentaCab_R.ID_Vehiculo2;
                objGuiaVentaCab.ID_Vehiculo3  = objOrdenVentaCab_R.ID_Vehiculo3;
                objGuiaVentaCab.ID_Chofer     = objOrdenVentaCab_R.ID_Chofer;
                objGuiaVentaCab.NotasDespacho = objOrdenVentaCab_R.NotasDespacho;

                objGuiaVentaCab.ID_CondicionCredito = objOrdenVentaCab_R.ID_CondicionCredito;
                objGuiaVentaCab.TransportistaRUC    = objOrdenVentaCab_R.ID_Transportista; // Revisar

                objGuiaVentaCab.TransportistaDomicilio       = string.Empty;               // Revisar
                objGuiaVentaCab.TransportistaMarca           = null;
                objGuiaVentaCab.TransportistaModelo          = null;
                objGuiaVentaCab.TransportistaPlaca           = null;
                objGuiaVentaCab.TransportistaCertInscripcion = null;
                objGuiaVentaCab.TransportistaChofer          = null;
                objGuiaVentaCab.TransportistaLicencia        = null;
                objGuiaVentaCab.CompPagoTipo = null;
                objGuiaVentaCab.CompPagoNro  = null;

                objGuiaVentaCab.CompPagoFechaEmision = DateTime.Now;

                objGuiaVentaCab.ID_AgendaOrigen           = objOrdenVentaCab_R.ID_AgendaOrigen;
                objGuiaVentaCab.DireccionOrigenSucursal   = objOrdenVentaCab_R.ID_Almacen;
                objGuiaVentaCab.DireccionOrigenReferencia = objOrdenVentaCab_R.DireccionOrigenReferencia;
                objGuiaVentaCab.DireccionOrigenDireccion  = objOrdenVentaCab_R.DireccionOrigenDireccion;

                objGuiaVentaCab.ID_AgendaDestino           = objOrdenVentaCab_R.ID_AgendaDestino;
                objGuiaVentaCab.DireccionDestinoSucursal   = objOrdenVentaCab_R.DireccionDestinoSucursal;
                objGuiaVentaCab.DireccionDestinoReferencia = objOrdenVentaCab_R.DireccionDestinoReferencia;
                objGuiaVentaCab.DireccionDestinoDireccion  = objOrdenVentaCab_R.DireccionDestinoDireccion;

                objGuiaVentaCab.HoraAtencionOpcion1_Desde = objOrdenVentaCab_R.HoraAtencionOpcion1_Desde;
                objGuiaVentaCab.HoraAtencionOpcion1_Hasta = objOrdenVentaCab_R.HoraAtencionOpcion1_Hasta;
                objGuiaVentaCab.HoraAtencionOpcion2_Desde = objOrdenVentaCab_R.HoraAtencionOpcion2_Desde;
                objGuiaVentaCab.HoraAtencionOpcion2_Hasta = objOrdenVentaCab_R.HoraAtencionOpcion2_Hasta;
                objGuiaVentaCab.HoraAtencionOpcion3_Desde = objOrdenVentaCab_R.HoraAtencionOpcion3_Desde;
                objGuiaVentaCab.HoraAtencionOpcion3_Hasta = objOrdenVentaCab_R.HoraAtencionOpcion3_Hasta;



                return(objGuiaVentaCab);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public decimal OrdenVenta_Registrar(int idEmpresa, int codigoUsuario, gsOV_BuscarCabeceraResult objOrdenVentaCabBE,
                                            List <gsOV_BuscarDetalleResult> lstProductos, List <GlosaBE> lstImpuestos, decimal?idOperacion, decimal limiteCredito,
                                            List <gsPedidos_FechasLetrasSelectResult> ListaFechas)


        {
            using (dmIntranetDataContext dci = new dmIntranetDataContext(GS.configuration.Init.GetValue(Constant.sistema, Constant.key, "genesys")))

            {
                dmGenesysDataContext dcg = new dmGenesysDataContext(string.Format(GS.configuration.Init.GetValue(Constant.sistema, Constant.key, dci.Empresa.SingleOrDefault(x => x.idEmpresa == idEmpresa).baseDatos), "usrGEN" + (10000 + codigoUsuario).ToString().Substring(1, 4)));

                VBG00004Result objEmpresa;
                try
                {
                    objEmpresa = dcg.VBG00004().Single();
                    using (TransactionScope scope = new TransactionScope())
                    {
                        //Desaorueba para que se pueda editar
                        if (idOperacion != null && dcg.OV.ToList().Find(x => x.Op == idOperacion).Aprobacion1&& objOrdenVentaCabBE.Id_Pago != 2 &&
                            (limiteCredito >= objOrdenVentaCabBE.Total || !objEmpresa.EvaluaLimCredito))
                        {
                            dcg.VBG01076("OV", idOperacion, 1, "1");
                        }

                        if (objOrdenVentaCabBE.ID_CondicionCredito == 0 && objOrdenVentaCabBE.Id_Pago == 1)
                        {
                            throw new ArgumentException("No se puede registrar el pedido, se está procesando un pedido con Tipo de Venta: Crédito y Tipo Credito: Contado, presione F5 para refrescar el formulario");
                        }

                        dcg.VBG00522(ref idOperacion, objOrdenVentaCabBE.ID_Agenda, objOrdenVentaCabBE.NoRegistro, objOrdenVentaCabBE.FechaOrden, objOrdenVentaCabBE.FechaDespacho,
                                     objOrdenVentaCabBE.FechaEntrega, objOrdenVentaCabBE.FechaVigencia, objOrdenVentaCabBE.FechaEmision, objOrdenVentaCabBE.FechaVencimiento, objOrdenVentaCabBE.ID_Envio,
                                     objOrdenVentaCabBE.ID_AgendaAnexoReferencia, objOrdenVentaCabBE.ID_Vendedor, objOrdenVentaCabBE.ID_Moneda, objOrdenVentaCabBE.Neto, objOrdenVentaCabBE.Dcto,
                                     objOrdenVentaCabBE.SubTotal, objOrdenVentaCabBE.Impuestos, objOrdenVentaCabBE.Total, objOrdenVentaCabBE.Observaciones, objOrdenVentaCabBE.Prioridad,
                                     objOrdenVentaCabBE.EntregaParcial, objOrdenVentaCabBE.Estado, objOrdenVentaCabBE.Id_Pago, objOrdenVentaCabBE.ID_AgendaAnexo, objOrdenVentaCabBE.TEA,
                                     objOrdenVentaCabBE.ID_AgendaDireccion, objOrdenVentaCabBE.ID_AgendaDireccion2, objOrdenVentaCabBE.ModoPago, objOrdenVentaCabBE.NotasDespacho, objOrdenVentaCabBE.ID_CondicionCredito,
                                     objOrdenVentaCabBE.NroOrdenCliente, objOrdenVentaCabBE.ID_NaturalezaGastoIngreso, objOrdenVentaCabBE.ID_AgendaOrigen, objOrdenVentaCabBE.DireccionOrigenSucursal,
                                     objOrdenVentaCabBE.DireccionOrigenReferencia, objOrdenVentaCabBE.DireccionOrigenDireccion, objOrdenVentaCabBE.ID_AgendaDestino, objOrdenVentaCabBE.DireccionDestinoSucursal,
                                     objOrdenVentaCabBE.DireccionDestinoReferencia, objOrdenVentaCabBE.DireccionDestinoDireccion, objOrdenVentaCabBE.ID_TipoDespacho, objOrdenVentaCabBE.ID_TipoPedido,
                                     objOrdenVentaCabBE.ID_DocumentoVenta, objOrdenVentaCabBE.ID_Almacen, objOrdenVentaCabBE.ID_Transportista, objOrdenVentaCabBE.ID_Chofer, objOrdenVentaCabBE.ID_Vehiculo1,
                                     objOrdenVentaCabBE.ID_Vehiculo2, objOrdenVentaCabBE.ID_Vehiculo3, objOrdenVentaCabBE.HoraAtencionOpcion1_Desde, objOrdenVentaCabBE.HoraAtencionOpcion1_Hasta,
                                     objOrdenVentaCabBE.HoraAtencionOpcion2_Desde, objOrdenVentaCabBE.HoraAtencionOpcion2_Hasta, objOrdenVentaCabBE.HoraAtencionOpcion3_Desde, objOrdenVentaCabBE.HoraAtencionOpcion3_Hasta,
                                     objOrdenVentaCabBE.ID_Sede, objOrdenVentaCabBE.Contacto);

                        if (idOperacion == null)
                        {
                            throw new ArgumentException("No se pudo registrar el pedido, revisar los campos obligatorios.");
                        }

                        dcg.VBG00523(idOperacion);

                        foreach (gsOV_BuscarDetalleResult objProducto in lstProductos)
                        {
                            decimal?idAmarre = null;
                            if (objProducto.ID_Amarre > 0)
                            {
                                idAmarre = objProducto.ID_Amarre;
                            }

                            if (objProducto.Estado != 0)
                            {
                                dcg.VBG00525(ref idAmarre, idOperacion, objProducto.TablaOrigen, objProducto.Linea, objProducto.ID_Item, objProducto.ID_ItemPedido,
                                             objProducto.Item_ID, objProducto.Cantidad, objProducto.Precio, objProducto.Dcto, objProducto.DctoValor, objProducto.Importe,
                                             objProducto.ID_ItemAnexo, objProducto.ID_CCosto, objProducto.ID_UnidadGestion, objProducto.ID_UnidadProyecto, objProducto.ID_UnidadInv,
                                             objProducto.FactorUnidadInv, objProducto.CantidadUnidadInv, objProducto.ID_UnidadDoc, objProducto.CantidadUnidadDoc, objProducto.Observaciones);
                            }
                            else
                            {
                                if (objProducto.ID_Amarre > 0)
                                {
                                    dcg.VBG00526(idAmarre);
                                }
                            }
                        }

                        foreach (GlosaBE objImpuesto in lstImpuestos)
                        {
                            dcg.VBG00524(idOperacion, objImpuesto.IdGlosa, objImpuesto.BaseImponible, objImpuesto.Importe);
                        }

                        dcg.VBG04091(idOperacion);

                        if (limiteCredito >= objOrdenVentaCabBE.Total || !objEmpresa.EvaluaLimCredito)
                        {
                            //Aprobar el pedido
                            if (objOrdenVentaCabBE.Id_Pago != 2)
                            {
                                dcg.VBG01076("OV", idOperacion, 1, "1");
                            }

                            string  moneda = null;
                            decimal?total  = null;
                            bool?   ok     = false;

                            if (objOrdenVentaCabBE.NoRegistro == "0" || objOrdenVentaCabBE.NoRegistro == null)
                            {
                                dcg.VBG00045(idOperacion, ref moneda, ref total, ref ok, null);
                                //Seleccionar impresora
                                VBG00038Result objImpresora = dcg.VBG00038(52).ToList()[0];
                                //Actualizar impresora
                                string  nombreImpresora = null;
                                decimal?idDocumento     = null;
                                string  nombreDocumento = null;
                                string  serieLetra      = null;
                                decimal?serieNumero     = null;
                                decimal?numero          = null;
                                int?    lenLetrasSerie  = null;
                                int?    lenNumeroSerie  = null;
                                int?    lenNumero       = null;
                                decimal?cantidad        = null;
                                string  archivoRpt      = null;
                                decimal?largo           = null;
                                decimal?ancho           = null;

                                dcg.VBG00037(objImpresora.ID_Impresora, ref nombreImpresora, ref idDocumento, ref nombreDocumento, ref serieLetra, ref serieNumero,
                                             ref numero, ref lenLetrasSerie, ref lenNumeroSerie, ref lenNumero, ref cantidad, ref archivoRpt, ref largo, ref ancho);

                                decimal?idImpresora = objImpresora.ID_Impresora;
                                dcg.VBG00036(ref idImpresora, nombreImpresora, idDocumento, serieLetra, serieNumero, numero + 1, lenLetrasSerie, lenNumeroSerie,
                                             lenNumero, cantidad - 1);

                                dcg.VBG00040(4, idOperacion, Math.Round((Math.Pow(10, Convert.ToDouble(lenNumeroSerie)) + Convert.ToDouble(serieNumero)), 0).ToString().Substring(1, Convert.ToInt32(lenNumeroSerie)), numero + 1);
                            }

                            //if (lstProductos.FindAll(x => x.Stock - x.Cantidad < 0 && x.Estado == 1 && x.Item_ID != KardexFlete).Count > 0 && objOrdenVentaCabBE.Id_Pago != 2)
                            //{
                            //    dcg.VBG01076("OV", idOperacion, 1, "1");
                            //}

                            //--------------Actualizar Fecha Letras

                            dcg.gsProcesoLetras_EliminarTotal((int)idOperacion, codigoUsuario);
                            gsProcesoLetras_RegistrarResult     objProceso    = new gsProcesoLetras_RegistrarResult();
                            gsProcesoLetras_Registrar_OLDResult objProcesoOLD = new gsProcesoLetras_Registrar_OLDResult();


                            if (ListaFechas != null)
                            {
                                if (ListaFechas.Count() > 0)
                                {
                                    int ID_PROCESO     = 0;
                                    int ID_PROCESO_OLD = 0;
                                    objProceso    = dcg.gsProcesoLetras_Registrar(0, codigoUsuario).Single();
                                    objProcesoOLD = dcg.gsProcesoLetras_Registrar_OLD(0, codigoUsuario).Single();

                                    ID_PROCESO     = (int)objProceso.Column1;
                                    ID_PROCESO_OLD = (int)objProcesoOLD.Column1;

                                    dcg.gsProcesoLetrasDetalle_Registrar(ID_PROCESO, (int)idOperacion, 0);
                                    dcg.gsProcesoLetrasDetalle_Registrar_OLD(ID_PROCESO_OLD, (int)idOperacion, 0);

                                    foreach (gsPedidos_FechasLetrasSelectResult objFecha in ListaFechas.OrderBy(x => x.Fecha))
                                    {
                                        dcg.gsPedidos_FechasLetrasInsert(ID_PROCESO_OLD, objFecha.Fecha, codigoUsuario);
                                        dcg.gsFactura_FechasLetrasInsert(ID_PROCESO, objFecha.Fecha, 0, codigoUsuario);
                                    }
                                }
                            }

                            //-------------------------------------------------------
                        }
                        dcg.SubmitChanges();
                        scope.Complete();
                        dcg.Connection.Close();

                        return((decimal)idOperacion);
                    }
                }
                catch (Exception ex)
                {
                    dci.Excepcion_Registrar(ex.Message, ex.TargetSite.Name);
                    dci.SubmitChanges();
                    throw new ArgumentException("No se pudo registrar el pedido en la base de datos.");
                }
                finally
                {
                    dcg.Connection.Close();
                }
            }
        }
Beispiel #6
0
        static void Pedido_Cargar(string idOrdenVenta, int idEmpresa, int codigoUsuario)
        {
            OrdenVentaWCFClient       objOrdenVentaWCF = new OrdenVentaWCFClient();;
            gsOV_BuscarCabeceraResult objOrdenVentaCab;
            List <GlosaBE>            lstGlosa       = new List <GlosaBE>();
            ImpuestoWCFClient         objImpuestoWCF = new ImpuestoWCFClient();

            gsOV_BuscarImpuestoResult[]           lstImpuestos    = null;
            List <gsImpuesto_ListarPorItemResult> lstImpuestoItem = new List <gsImpuesto_ListarPorItemResult>();

            gsOV_BuscarDetalleResult[] objOrdenVentaDet = null;
            List <gsItem_BuscarResult> lstProductos     = new List <gsItem_BuscarResult>();
            bool?           bloqueado      = false;
            string          mensajeBloqueo = null;
            AgendaWCFClient objAgendaWCFClient;

            AgendaWCF.VBG01134Result objAgendaCliente;
            decimal? lineaCredito    = null;
            DateTime?fechaVecimiento = null;
            string   strLETRAS       = "";
            decimal? TC = 0;

            try
            {
                objAgendaWCFClient = new AgendaWCFClient();
                objAgendaCliente   = new AgendaWCF.VBG01134Result();

                objOrdenVentaCab = objOrdenVentaWCF.OrdenVenta_Buscar(idEmpresa, codigoUsuario, int.Parse(idOrdenVenta),
                                                                      ref objOrdenVentaDet, ref lstImpuestos, ref bloqueado, ref mensajeBloqueo);

                objAgendaCliente = objAgendaWCFClient.Agenda_BuscarCliente(idEmpresa, codigoUsuario, objOrdenVentaCab.ID_Agenda, ref lineaCredito, ref fechaVecimiento, ref TC);
                List <GlosaBE> Impuesto_Obtener_R = new List <GlosaBE>();


                gsPedidos_FechasLetrasSelectResult[] lstFechas = objOrdenVentaWCF.PedidoLetras_Detalle(idEmpresa, codigoUsuario, 0, int.Parse(idOrdenVenta));
                strLETRAS = PedidosFechas_Letras(lstFechas.ToList(), (DateTime)objOrdenVentaCab.FechaEmision);



                //-----------------------------------------------------------

                gsOV_BuscarCabeceraResult  cabecera = OrdenVenta_ObtenerCabecera(objOrdenVentaCab, idOrdenVenta, lstImpuestos, ref Impuesto_Obtener_R);
                gsOV_BuscarDetalleResult[] detalle  = OrdenVenta_ObtenerDetalle(objOrdenVentaCab, objOrdenVentaDet, idEmpresa, codigoUsuario).ToArray();


                int KardexFlete = 0;
                List <gsOV_BuscarDetalleResult> kardex      = new List <gsOV_BuscarDetalleResult>();
                gsOV_BuscarDetalleResult        objetoFlete = new gsOV_BuscarDetalleResult();
                kardex = detalle.ToList().FindAll(x => x.Item.Contains("Flete") && x.Estado == 1).ToList();

                if (kardex.Count > 0)
                {
                    KardexFlete = Convert.ToInt32(kardex[0].Item_ID);
                    //-----------------------------------------------------------
                    if (KardexFlete > 0)
                    {
                        objetoFlete = detalle.ToList().Find(x => x.Item_ID == KardexFlete && x.Estado == 1);
                    }
                }

                // ----------------------------------------------------------
                objOrdenVentaWCF.OrdenVenta_Registrar(idEmpresa, 1,
                                                      cabecera,
                                                      detalle,
                                                      Impuesto_Obtener_R.ToArray(), decimal.Parse(idOrdenVenta), (decimal)lineaCredito,
                                                      (DateTime)fechaVecimiento, lstFechas, strLETRAS, KardexFlete, objetoFlete);

                //objOrdenVentaWCF.OrdenVenta_Registrar(codEmpresa, codUsuario, cabecera, detalle, impuesto, idPedido, LineaCredito,
                //                                       dtFechaVencimiento, fechas, PlanLetras, KardexFlete, objetoFlete);

                //string pedido = "Realizado.";
            }
            catch (Exception ex)
            {
                throw new ArgumentException(ex.Message, ex.TargetSite.Name + "No se pudo registrar el pedido en la base de datos.");
            }
        }