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; } }
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(); } } }