Exemple #1
0
        public void Pedido_Registrar(int idEmpresa, int codigoUsuario, PedidoCabBE objPedidoCabBE, List <PedidoDetBE> lstProductos,
                                     List <GlosaBE> lstImpuestos, decimal?idOperacion, string password, decimal limiteCredito)
        {
            PedidoBL objPedidoBL;

            try
            {
                objPedidoBL = new PedidoBL();
                objPedidoBL.Pedido_Registrar(idEmpresa, codigoUsuario, objPedidoCabBE, lstProductos, lstImpuestos, idOperacion, password, limiteCredito);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public void Pedido_Registrar(int idEmpresa, int codigoUsuario, PedidoCabBE objPedidoCabBE, List <PedidoDetBE> lstProductos,
                                     List <GlosaBE> lstImpuestos, decimal?idOperacion, string password, decimal limiteCredito)
        {
            ////using (dmIntranetDataContext dci = new dmIntranetDataContext(ConfigurationManager.ConnectionStrings["genesys"].ConnectionString))
            using (dmIntranetDataContext dci = new dmIntranetDataContext(GS.configuration.Init.GetValue(Constant.sistema, Constant.key, "genesys")))
            {
                ////dmGenesysDataContext dcg = new dmGenesysDataContext(string.Format(ConfigurationManager.ConnectionStrings[dci.Empresa.SingleOrDefault(x => x.idEmpresa == idEmpresa).baseDatos].ConnectionString, "usrGEN" + (10000 + codigoUsuario).ToString().Substring(1, 4)));
                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)));
                try
                {
                    //Desaorueba para que se pueda editar
                    if (idOperacion != null && dcg.OV.ToList().Find(x => x.Op == idOperacion).Aprobacion1&& objPedidoCabBE.IdPago != 2 && limiteCredito >= objPedidoCabBE.Total)
                    {
                        dcg.VBG01076("OV", idOperacion, codigoUsuario, "1");
                    }

                    dcg.VBG00522(ref idOperacion, objPedidoCabBE.IdAgenda, objPedidoCabBE.NroRegistro, objPedidoCabBE.FechaOrden, objPedidoCabBE.FechaDespacho,
                                 objPedidoCabBE.FechaEntrega, objPedidoCabBE.FechaVigencia, objPedidoCabBE.Fecha, objPedidoCabBE.FechaVencimiento, objPedidoCabBE.IdEnvio,
                                 objPedidoCabBE.IdAgenciaAnexoReferencia, objPedidoCabBE.IdVendedor, objPedidoCabBE.IdMoneda, objPedidoCabBE.Neto, objPedidoCabBE.Descuento,
                                 objPedidoCabBE.Subtotal, objPedidoCabBE.Impuestos, objPedidoCabBE.Total, objPedidoCabBE.Observaciones, objPedidoCabBE.Prioridad,
                                 objPedidoCabBE.EntregaParcial, objPedidoCabBE.Estado, objPedidoCabBE.IdPago, objPedidoCabBE.IdAgenciaAnexo, objPedidoCabBE.TEA,
                                 objPedidoCabBE.IdAgenciaDireccion1, objPedidoCabBE.IdAgenciaDireccion2, objPedidoCabBE.ModoPago, objPedidoCabBE.NotasDespacho, objPedidoCabBE.IdCondicionCredito,
                                 objPedidoCabBE.NroOrdenCliente, objPedidoCabBE.IdNaturalezaGasto, objPedidoCabBE.IdAgendaOrigen, objPedidoCabBE.IdSucursalOrigen,
                                 objPedidoCabBE.IdReferenciaOrigen, objPedidoCabBE.IdDireccionOrigen, objPedidoCabBE.IdAgendaDestino, objPedidoCabBE.IdSucursalDestino,
                                 objPedidoCabBE.IdReferenciaDestino, objPedidoCabBE.IdDireccionDestino, objPedidoCabBE.IdTipoDespacho, objPedidoCabBE.IdTipoPedido,
                                 objPedidoCabBE.IdDocumentoVenta, objPedidoCabBE.IdAlmacen, objPedidoCabBE.IdTransportista, objPedidoCabBE.IdChofer, objPedidoCabBE.IdVehiculo1,
                                 objPedidoCabBE.IdVehiculo2, objPedidoCabBE.IdVehiculo3, objPedidoCabBE.HoraAtencionOpcional1_Desde, objPedidoCabBE.HoraAtencionOpcional1_Hasta,
                                 objPedidoCabBE.HoraAtencionOpcional2_Desde, objPedidoCabBE.HoraAtencionOpcional2_Hasta, objPedidoCabBE.HoraAtencionOpcional3_Desde, objPedidoCabBE.HoraAtencionOpcional3_Hasta,
                                 objPedidoCabBE.IdSede, objPedidoCabBE.IdContacto);

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

                    dcg.VBG00523(idOperacion);

                    foreach (PedidoDetBE objPedidoDetBE in lstProductos)
                    {
                        decimal?idAmarre = null;
                        if (objPedidoDetBE.IdAmarre > 0)
                        {
                            idAmarre = objPedidoDetBE.IdAmarre;
                        }
                        if (objPedidoDetBE.Estado)
                        {
                            dcg.VBG00525(ref idAmarre, idOperacion, objPedidoDetBE.TablaOrigen, objPedidoDetBE.Linea, objPedidoDetBE.ID_Item, objPedidoDetBE.ID_ItemPedido,
                                         objPedidoDetBE.Item_ID, objPedidoDetBE.Cantidad, objPedidoDetBE.Precio, objPedidoDetBE.Dcto, objPedidoDetBE.DctoValor, objPedidoDetBE.Importe,
                                         objPedidoDetBE.ID_ItemAnexo, objPedidoDetBE.ID_CCosto, objPedidoDetBE.ID_UnidadGestion, objPedidoDetBE.ID_UnidadProyecto, objPedidoDetBE.ID_UnidadInv,
                                         objPedidoDetBE.FactorUnidadInv, objPedidoDetBE.CantidadUnidadInv, objPedidoDetBE.ID_UnidadDoc, objPedidoDetBE.CantidadUnidadDoc, objPedidoDetBE.Observaciones);
                        }
                        else
                        {
                            dcg.VBG00526(idAmarre);
                        }
                    }

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

                    if (limiteCredito >= objPedidoCabBE.Total)
                    {
                        //Aprobar el pedido
                        if (objPedidoCabBE.IdPago != 2)
                        {
                            dcg.VBG01076("OV", idOperacion, codigoUsuario, "1");
                        }

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

                        if (objPedidoCabBE.NroRegistro == "0" || objPedidoCabBE.NroRegistro == 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?longitud        = 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 longitud, 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);
                        }
                    }
                }
                catch (Exception ex)
                {
                    dci.Excepcion_Registrar(ex.Message, ex.TargetSite.Name);
                    throw new ArgumentException("No se pudo registrar el pedido en la base de datos.");
                }
                finally
                {
                    dcg.SubmitChanges();
                    dci.SubmitChanges();
                    dcg.Connection.Close();
                    dci.Connection.Close();
                }
            }
        }