Esempio n. 1
0
        public void OrdenVenta_Registrar_Fechas(int idEmpresa, int codigoUsuario, DataTable TablaDocs, List <gsPedidos_FechasLetrasSelectResult> ListaFechas)

        {
            //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
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        //--------------Actualizar Fecha Letras

                        foreach (DataRow row in TablaDocs.Rows)
                        {
                            int OP_DOC = Convert.ToInt32(row["OP_OV"]);
                            dcg.gsRE_ProcesoLetras_EliminarTotal((int)OP_DOC, codigoUsuario);
                        }

                        gsProcesoLetras_RegistrarResult objProceso = new gsProcesoLetras_RegistrarResult();


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

                                foreach (DataRow row in TablaDocs.Rows)
                                {
                                    int OP_DOC = Convert.ToInt32(row["OP_OV"]);
                                    dcg.gsProcesoLetrasDetalle_Registrar(ID_PROCESO, OP_DOC, 0);
                                }

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

                        dcg.SubmitChanges();
                        scope.Complete();
                        dcg.Connection.Close();
                    }
                }
                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();
                }
            }
        }
Esempio n. 2
0
        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();
                }
            }
        }