예제 #1
0
        //public gsOV_BuscarCabeceraResult OrdenVenta_Buscar(int idEmpresa, int codigoUsuario, int idPedido,
        //    ref List<gsOV_BuscarDetalleResult> objOrdenVentaDet, ref List<gsOV_BuscarImpuestoResult> objOrdenVentaImp,
        //    ref bool? bloqueado, ref string mensajeBloqueado)
        //{
        //    try
        //    {
        //        OrdenVentaBL objOrdenVentaBL = new OrdenVentaBL();
        //        return objOrdenVentaBL.OrdenVenta_Buscar(idEmpresa, codigoUsuario, idPedido, ref objOrdenVentaDet, ref objOrdenVentaImp,
        //            ref bloqueado, ref mensajeBloqueado);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        //public void OrdenVenta_Eliminar(int idEmpresa, int codigoUsuario, int idOperacion)
        //{
        //    try
        //    {
        //        OrdenVentaBL objOrdenVentaBL = new OrdenVentaBL();
        //        //objOrdenVentaBL.OrdenVenta_Eliminar(idEmpresa, codigoUsuario, idOperacion);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        //public List<gsOV_ListarResult> OrdenVenta_Listar(int idEmpresa, int codigoUsuario, string ID_Agenda,
        //    DateTime fechaDesde, DateTime fechaHasta, string ID_Vendedor, bool modificarPedido)
        //{
        //    try
        //    {
        //        OrdenVentaBL objOrdenVentaBL = new OrdenVentaBL();
        //        return objOrdenVentaBL.OrdenVenta_Listar(idEmpresa, codigoUsuario, ID_Agenda, fechaDesde,
        //            fechaHasta, ID_Vendedor, modificarPedido);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        ////public void OrdenVenta_Registrar(int idEmpresa, int codigoUsuario, gsOV_BuscarCabeceraResult objOrdenVentaCabBE,
        ////    List<gsOV_BuscarDetalleResult> lstProductos, List<GlosaBE> lstImpuestos, decimal? idOperacion, decimal limiteCredito,
        ////    DateTime fechaVencimiento)
        ////{
        ////    decimal neto, descuento, impuesto;
        ////    List<gsOV_BuscarDetalleResult> lst;
        ////    List<gsImpuesto_ListarPorItemResult> lstImp;
        ////    List<GlosaBE> lstGlosa;

        ////    try
        ////    {
        ////        List<gsPedidoDetalle> lstPedidoDet = new List<gsPedidoDetalle>();
        ////        OrdenVentaBL objOrdenVentaBL = new OrdenVentaBL();
        ////        PedidoBL objPedidoBL = new PedidoBL();
        ////        if (idOperacion == null && lstProductos.FindAll(x => x.Stock - x.Cantidad < 0).Count > 0
        ////            && lstProductos.FindAll(x => x.Stock - x.Cantidad >= 0).Count > 0)
        ////        {
        ////            ImpuestoBL objImpuestoBL = new ImpuestoBL();
        ////            if (lstProductos.FindAll(x => x.Stock - x.Cantidad >= 0).Count > 0)
        ////            {
        ////                neto = 0;
        ////                descuento = 0;
        ////                impuesto = 0;
        ////                lst = lstProductos.FindAll(x => x.Stock - x.Cantidad >= 0);
        ////                lstGlosa = new List<GlosaBE>();
        ////                foreach (gsOV_BuscarDetalleResult objProducto in lst)
        ////                {
        ////                    if (objProducto.Estado == 1)
        ////                    {
        ////                        neto = neto + objProducto.Importe;
        ////                        descuento = descuento + objProducto.DctoValor;

        ////                        lstImp = objImpuestoBL.Impuesto_ListarPorItem(idEmpresa, codigoUsuario, objProducto.ID_Item, DateTime.Now.Date);
        ////                        foreach (gsImpuesto_ListarPorItemResult objImpuesto in lstImp)
        ////                        {
        ////                            GlosaBE objGlosaBE = new GlosaBE();
        ////                            if (lstGlosa.FindAll(x => x.IdGlosa == objImpuesto.ID_Impuesto).Count <= 0)
        ////                            {
        ////                                objGlosaBE.IdGlosa = objImpuesto.ID_Impuesto;
        ////                                objGlosaBE.Descripcion = objImpuesto.Abreviacion;
        ////                                if (objImpuesto.Valor > 0)
        ////                                    objGlosaBE.BaseImponible = objProducto.Importe;
        ////                                else
        ////                                    objGlosaBE.BaseImponible = 0;
        ////                                objGlosaBE.Importe = Math.Round(((decimal)objImpuesto.Valor / 100) * (objProducto.Importe * (1 - (objProducto.DctoValor / 100))), 4);
        ////                            }
        ////                            else
        ////                            {
        ////                                objGlosaBE = lstGlosa.Find(x => x.IdGlosa == objImpuesto.ID_Impuesto);
        ////                                lstGlosa.Remove(objGlosaBE);
        ////                                if (objImpuesto.Valor > 0)
        ////                                    objGlosaBE.BaseImponible = objGlosaBE.BaseImponible + objProducto.Importe;
        ////                                objGlosaBE.Importe = Math.Round(objGlosaBE.Importe + ((decimal)objImpuesto.Valor / 100) * (objProducto.Importe * (1 - (objProducto.DctoValor / 100))), 4);
        ////                            }
        ////                            lstGlosa.Add(objGlosaBE);
        ////                        }
        ////                    }
        ////                }

        ////                foreach (GlosaBE objGlosaBE in lstGlosa)
        ////                {
        ////                    impuesto = impuesto + objGlosaBE.Importe;
        ////                }

        ////                objOrdenVentaCabBE.Neto = neto;
        ////                objOrdenVentaCabBE.Dcto = descuento;
        ////                objOrdenVentaCabBE.SubTotal = neto - descuento;
        ////                objOrdenVentaCabBE.Impuestos = impuesto;
        ////                objOrdenVentaCabBE.Total = neto - descuento + impuesto;

        ////                gsPedidoDetalle objPedidoDetalle = new gsPedidoDetalle();
        ////                objPedidoDetalle.Op = objOrdenVentaBL.OrdenVenta_Registrar(idEmpresa, codigoUsuario, objOrdenVentaCabBE,
        ////                lstProductos.FindAll(x => x.Stock - x.Cantidad >= 0), lstGlosa, idOperacion, limiteCredito);

        ////                if (objOrdenVentaCabBE.Total > limiteCredito)
        ////                {
        ////                    objPedidoDetalle.Motivo = "Se debe aumentar la linea de crédito en " +
        ////                        Math.Round((objOrdenVentaCabBE.Total - limiteCredito), 2).ToString() + ".";
        ////                    objPedidoDetalle.limiteCredito = true;
        ////                }

        ////                if (DateTime.Compare(DateTime.Now.Date, fechaVencimiento) > 0)
        ////                {
        ////                    objPedidoDetalle.Motivo = objPedidoDetalle.Motivo + " Documentos pendientes de pago, aumentar los días de bloqueo en " +
        ////                        (DateTime.Now.Date - fechaVencimiento).Days.ToString() + ".";
        ////                    objPedidoDetalle.documentoPendiente = true;
        ////                }

        ////                if (lstProductos.FindAll(x => x.Stock - x.Cantidad >= 0).Count > 0)
        ////                {
        ////                    objPedidoDetalle.Motivo = objPedidoDetalle.Motivo + " El pedido se ha guardado con stock.";
        ////                    objPedidoDetalle.sinStock = false;
        ////                }

        ////                objPedidoDetalle.Motivo = objPedidoDetalle.Motivo.Trim();
        ////                limiteCredito = limiteCredito - objOrdenVentaCabBE.Total;
        ////                lstPedidoDet.Add(objPedidoDetalle);
        ////            }
        ////            if (lstProductos.FindAll(x => x.Stock - x.Cantidad < 0).Count > 0)
        ////            {
        ////                neto = 0;
        ////                descuento = 0;
        ////                impuesto = 0;
        ////                lst = lstProductos.FindAll(x => x.Stock - x.Cantidad < 0);
        ////                lstGlosa = new List<GlosaBE>();
        ////                foreach (gsOV_BuscarDetalleResult objProducto in lst)
        ////                {
        ////                    if (objProducto.Estado == 1)
        ////                    {
        ////                        neto = neto + objProducto.Importe;
        ////                        descuento = descuento + objProducto.DctoValor;

        ////                        lstImp = objImpuestoBL.Impuesto_ListarPorItem(idEmpresa, codigoUsuario, objProducto.ID_Item, DateTime.Now.Date);
        ////                        foreach (gsImpuesto_ListarPorItemResult objImpuesto in lstImp)
        ////                        {
        ////                            GlosaBE objGlosaBE = new GlosaBE();
        ////                            if (lstGlosa.FindAll(x => x.IdGlosa == objImpuesto.ID_Impuesto).Count <= 0)
        ////                            {
        ////                                objGlosaBE.IdGlosa = objImpuesto.ID_Impuesto;
        ////                                objGlosaBE.Descripcion = objImpuesto.Abreviacion;
        ////                                if (objImpuesto.Valor > 0)
        ////                                    objGlosaBE.BaseImponible = objProducto.Importe;
        ////                                else
        ////                                    objGlosaBE.BaseImponible = 0;
        ////                                objGlosaBE.Importe = Math.Round(((decimal)objImpuesto.Valor / 100) * (objProducto.Importe * (1 - (objProducto.DctoValor / 100))), 4);
        ////                            }
        ////                            else
        ////                            {
        ////                                objGlosaBE = lstGlosa.Find(x => x.IdGlosa == objImpuesto.ID_Impuesto);
        ////                                lstGlosa.Remove(objGlosaBE);
        ////                                if (objImpuesto.Valor > 0)
        ////                                    objGlosaBE.BaseImponible = objGlosaBE.BaseImponible + objProducto.Importe;
        ////                                objGlosaBE.Importe = Math.Round(objGlosaBE.Importe + ((decimal)objImpuesto.Valor / 100) * (objProducto.Importe * (1 - (objProducto.DctoValor / 100))), 4);
        ////                            }
        ////                            lstGlosa.Add(objGlosaBE);
        ////                        }
        ////                    }
        ////                }

        ////                foreach (GlosaBE objGlosaBE in lstGlosa)
        ////                {
        ////                    impuesto = impuesto + objGlosaBE.Importe;
        ////                }

        ////                objOrdenVentaCabBE.Neto = neto;
        ////                objOrdenVentaCabBE.Dcto = descuento;
        ////                objOrdenVentaCabBE.SubTotal = neto - descuento;
        ////                objOrdenVentaCabBE.Impuestos = impuesto;
        ////                objOrdenVentaCabBE.Total = neto - descuento + impuesto;

        ////                gsPedidoDetalle objPedidoDetalle = new gsPedidoDetalle();
        ////                objPedidoDetalle.Op = objOrdenVentaBL.OrdenVenta_Registrar(idEmpresa, codigoUsuario, objOrdenVentaCabBE,
        ////                lstProductos.FindAll(x => x.Stock - x.Cantidad < 0), lstGlosa, idOperacion, limiteCredito);

        ////                if (objOrdenVentaCabBE.Total > limiteCredito)
        ////                {
        ////                    objPedidoDetalle.Motivo = "Se debe aumentar la linea de crédito en " +
        ////                        Math.Round((objOrdenVentaCabBE.Total - limiteCredito), 2).ToString() + ".";
        ////                    objPedidoDetalle.limiteCredito = true;
        ////                }

        ////                if (DateTime.Compare(DateTime.Now.Date, fechaVencimiento) > 0)
        ////                {
        ////                    objPedidoDetalle.Motivo = objPedidoDetalle.Motivo + " Documentos pendientes de pago, aumentar los días de bloqueo en " +
        ////                        (DateTime.Now.Date - fechaVencimiento).Days.ToString() + ".";
        ////                    objPedidoDetalle.documentoPendiente = true;
        ////                }

        ////                if (lstProductos.FindAll(x => x.Stock - x.Cantidad < 0).Count > 0)
        ////                {
        ////                    objPedidoDetalle.Motivo = objPedidoDetalle.Motivo + " El pedido se ha guardado sin stock.";
        ////                    objPedidoDetalle.sinStock = true;
        ////                }

        ////                lstPedidoDet.Add(objPedidoDetalle);
        ////            }
        ////            objPedidoBL.Pedido_RegistrarAmarre(idEmpresa, codigoUsuario, lstPedidoDet);
        ////        }
        ////        else {
        ////            gsPedidoDetalle objPedidoDetalle = new gsPedidoDetalle();
        ////            objPedidoDetalle.Op = objOrdenVentaBL.OrdenVenta_Registrar(idEmpresa, codigoUsuario, objOrdenVentaCabBE,
        ////                lstProductos, lstImpuestos, idOperacion, limiteCredito);

        ////            if (idOperacion == null)
        ////            {
        ////                objPedidoDetalle.Motivo = "";
        ////                if (objOrdenVentaCabBE.Total > limiteCredito)
        ////                {
        ////                    objPedidoDetalle.Motivo = "Se debe aumentar la linea de crédito en " +
        ////                        Math.Round((objOrdenVentaCabBE.Total - limiteCredito), 2).ToString() + ".";
        ////                    objPedidoDetalle.limiteCredito = true;
        ////                }

        ////                if (DateTime.Compare(DateTime.Now.Date, fechaVencimiento) > 0)
        ////                {
        ////                    objPedidoDetalle.Motivo = objPedidoDetalle.Motivo + " Documentos pendientes de pago, aumentar los días de bloqueo en " +
        ////                        (DateTime.Now.Date - fechaVencimiento).Days.ToString() + ".";
        ////                    objPedidoDetalle.documentoPendiente = true;
        ////                }

        ////                if (lstProductos.FindAll(x => x.Stock - x.Cantidad < 0).Count > 0)
        ////                {
        ////                    objPedidoDetalle.Motivo = objPedidoDetalle.Motivo + " El pedido se ha guardado sin stock.";
        ////                    objPedidoDetalle.sinStock = true;
        ////                }

        ////                objPedidoDetalle.Motivo = objPedidoDetalle.Motivo.Trim();
        ////                lstPedidoDet.Add(objPedidoDetalle);
        ////                objPedidoBL.Pedido_RegistrarAmarre(idEmpresa, codigoUsuario, lstPedidoDet);
        ////            }
        ////        }
        ////    }
        ////    catch (Exception ex)
        ////    {
        ////        throw ex;
        ////    }
        ////}

        //public List<VBG03630Result> OrdenVenta_ListarTipo(int idEmpresa, int codigoUsuario)
        //{
        //    PedidoBL objPedidoBL;
        //    try
        //    {
        //        objPedidoBL = new PedidoBL();
        //        return objPedidoBL.Pedido_ListarTipo(idEmpresa, codigoUsuario);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        //public void OV_TransGratuitas_Aprobar(int idEmpresa, int codigoUsuario, int Op, ref string mensajeError)
        //{
        //    try
        //    {
        //        OrdenVentaBL objOrdenVentaBL = new OrdenVentaBL();
        //        objOrdenVentaBL.OV_TransGratuitas_Aprobar(idEmpresa, codigoUsuario, Op, ref mensajeError);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        //public List<gsOV_Listar_SectoristaResult> OrdenVenta_Listar_Sectorista(int idEmpresa, int codigoUsuario, string ID_Agenda, DateTime fechaDesde, DateTime fechaHasta, string ID_Vendedor, bool modificarPedido, string id_Sectorista)
        //{
        //    List<gsOV_Listar_SectoristaResult> lista = new List<gsOV_Listar_SectoristaResult>();
        //    try
        //    {
        //        OrdenVentaBL objOrdenVentaBL = new OrdenVentaBL();
        //        //return objOrdenVentaBL.OrdenVenta_Listar_Sectorista(idEmpresa, codigoUsuario, ID_Agenda, fechaDesde, fechaHasta, ID_Vendedor, modificarPedido, id_Sectorista);

        //        return lista;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        //----------------------------------------------
        #endregion

        #region NEW
        public void Anular_OC(int idEmpresa, int codigoUsuario, int OP)
        {
            try
            {
                OrdenCompraBL objBL = new OrdenCompraBL();
                objBL.Anular_OC(idEmpresa, codigoUsuario, OP);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }