private List <ComprobanteDetalleEntidad> MapearMuchos(DataSet ds)
        {
            List <ComprobanteDetalleEntidad> ResUnosItem = new List <ComprobanteDetalleEntidad>();

            try
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    ComprobanteDetalleEntidad unItem = new ComprobanteDetalleEntidad();


                    unItem.IdComprobanteDetalle = (int)row["IdComprobanteDetalle"];
                    unItem.NroComprobante       = (int)row["NroComprobante"];
                    unItem.IdSucursal           = (int)row["IdSucursal"];
                    unItem.IdTipoComprobante    = (int)row["IdTipoComprobante"];
                    unItem.CUIT                  = row["CUIT"].ToString();
                    unItem.miProducto            = new ProductoEntidad();
                    unItem.miProducto.IdProducto = (int)row["IdProducto"];
                    unItem.CantidadProducto      = (int)row["CantidadProducto"];
                    unItem.PrecioUnitarioFact    = (decimal)row["PrecioUnitarioFact"];

                    ResUnosItem.Add(unItem);
                }
                return(ResUnosItem);
            }
            catch (Exception es)
            {
                throw;
            }
        }
        /// <summary>
        /// Updates a record in the ComprobanteDetalle table.
        /// </summary>
        public void Update(ComprobanteDetalleEntidad comprobanteDetalle)
        {
            ValidationUtility.ValidateArgument("comprobanteDetalle", comprobanteDetalle);

            SqlParameter[] parameters = new SqlParameter[]
            {
                new SqlParameter("@IdComprobanteDetalle", comprobanteDetalle.IdComprobanteDetalle),
                new SqlParameter("@NroComprobante", comprobanteDetalle.NroComprobante),
                new SqlParameter("@IdSucursal", comprobanteDetalle.IdSucursal),
                new SqlParameter("@IdTipoComprobante", comprobanteDetalle.IdTipoComprobante),
                new SqlParameter("@CUIT", comprobanteDetalle.CUIT),
                new SqlParameter("@IdProducto", comprobanteDetalle.IdProducto),
                new SqlParameter("@CantidadProducto", comprobanteDetalle.CantidadProducto),
                new SqlParameter("@PrecioUnitarioFact", comprobanteDetalle.PrecioUnitarioFact)
            };

            SqlClientUtility.ExecuteNonQuery(SqlClientUtility.connectionStringName, CommandType.StoredProcedure, "ComprobanteDetalleUpdate", parameters);
        }
        /// <summary>
        /// Selects a single record from the ComprobanteDetalle table.
        /// </summary>
        public ComprobanteDetalleEntidad Select(int idComprobanteDetalle, int nroComprobante, int idSucursal, int idTipoComprobante, int cUIT)
        {
            SqlParameter[] parameters = new SqlParameter[]
            {
                new SqlParameter("@IdComprobanteDetalle", idComprobanteDetalle),
                new SqlParameter("@NroComprobante", nroComprobante),
                new SqlParameter("@IdSucursal", idSucursal),
                new SqlParameter("@IdTipoComprobante", idTipoComprobante),
                new SqlParameter("@CUIT", cUIT)
            };

            using (DataTable dt = SqlClientUtility.ExecuteDataTable(SqlClientUtility.connectionStringName, CommandType.StoredProcedure, "ComprobanteDetalleSelect", parameters))
            {
                ComprobanteDetalleEntidad ComprobanteDetalleEntidad = new ComprobanteDetalleEntidad();

                ComprobanteDetalleEntidad = Mapeador.MapearFirst <ComprobanteDetalleEntidad>(dt);

                return(ComprobanteDetalleEntidad);
            }
        }
예제 #4
0
        public static bool GenerarNotaDebWebMethod(string MontoNotaDebito, string NroFactAsocND)
        {
            ComprobanteCore    ComprobanteBLL = new ComprobanteCore();
            ComprobanteEntidad ComprobanteRow = new ComprobanteEntidad();

            try
            {
                string ultimos8delcode = NroFactAsocND.Substring(NroFactAsocND.Length - 8);
                string nrocomprobantesincerosalaizquierda = ultimos8delcode.TrimStart('0');
                //var comprobantes = ComprobanteBLL.ComprobanteSelectAllListadosByCUIT_NroComprobante(Convert.ToInt32(nrocomprobantesincerosalaizquierda));

                ComprobanteRow = ComprobanteBLL.ComprobanteSelectAllByCUIT_NroComprobante(Convert.ToInt32(nrocomprobantesincerosalaizquierda));
                List <ComprobanteDetalleEntidad> ListadeDetalles = new List <ComprobanteDetalleEntidad>();
                ListadeDetalles = ComprobanteBLL.DetallesSelectByComprobante(ComprobanteRow.NroComprobante, ComprobanteRow.miSucursal.IdSucursal, ComprobanteRow.miTipoComprobante.IdTipoComprobante);

                decimal montoAux = 0;
                if (!string.IsNullOrWhiteSpace(MontoNotaDebito))
                {
                    montoAux = Decimal.Parse(MontoNotaDebito);
                }
                if (ListadeDetalles.Sum(X => X.PrecioUnitarioFact) < Decimal.Parse(MontoNotaDebito) | montoAux < 1)
                {
                    return(false);
                }

                ComprobanteEntidad unaNotaDebito = new ComprobanteEntidad();

                unaNotaDebito = ComprobanteRow;
                unaNotaDebito.FechaComprobante = DateTime.Now;

                unaNotaDebito.Detalles = new List <ComprobanteDetalleEntidad>();

                switch (ComprobanteRow.miTipoComprobante.IdTipoComprobante)
                {
                case 1:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 8;
                    break;

                case 2:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 9;
                    break;

                case 3:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 10;
                    break;

                default:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 8;
                    break;
                }


                int ContadorDetalle = 0;

                foreach (var item in ListadeDetalles)
                {
                    ComprobanteDetalleEntidad unDetalleComprobante = new ComprobanteDetalleEntidad();
                    ContadorDetalle = ContadorDetalle + 1;
                    unDetalleComprobante.IdComprobanteDetalle = ContadorDetalle;
                    unDetalleComprobante.NroComprobante       = ComprobanteRow.NroComprobante;
                    unDetalleComprobante.IdSucursal           = ComprobanteRow.miSucursal.IdSucursal;
                    unDetalleComprobante.IdTipoComprobante    = unaNotaDebito.miTipoComprobante.IdTipoComprobante;
                    unDetalleComprobante.CUIT                  = ConfigSection.Default.Site.Cuit;
                    unDetalleComprobante.miProducto            = new ProductoEntidad();
                    unDetalleComprobante.miProducto.IdProducto = item.miProducto.IdProducto;
                    unDetalleComprobante.CantidadProducto      = item.CantidadProducto;
                    unDetalleComprobante.PrecioUnitarioFact    = item.PrecioUnitarioFact;
                    unaNotaDebito.Detalles.Add(unDetalleComprobante);
                    //ComprobanteDetalleEntidad NCDetalle = detalle;
                    //NCDetalle.IdTipoComprobante = NotaDeCredito.IdTipoComprobante;
                    //ComprobanteBLL.DetalleCreate(NCDetalle);
                }

                unaNotaDebito.Ajuste = int.Parse(MontoNotaDebito);

                ComprobanteBLL.Create(unaNotaDebito);
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }


            //System.Text.StringBuilder sb = new System.Text.StringBuilder();
            //sb.Append(@"<script type='text/javascript'>");
            //sb.Append("alert('Nota de credito generada');");
            //sb.Append(@"</script>");
            //ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
            //           "ModalScript3", sb.ToString(), false);
        }
예제 #5
0
        //Si esta en Pendiente y pasa a Pago (llamada por estado==Pendiente)
        public void AvanzarPaso(PedidoEntidad elPedido, SucursalEntidad laSucursal, UsuarioEntidad elCliente, int elIdFormaPago)
        {
            PagoEntidad unPago = new PagoEntidad();

            unPago.IdPedido                = elPedido.IdPedido;
            unPago.miFormaPago             = new FormaPagoEntidad();
            unPago.miFormaPago.IdFormaPago = elIdFormaPago;
            unPago.MontoPago               = (decimal)elPedido.misDetalles.Select(x => x.Cantidad * x.PrecioUnitario).Sum();
            unPago.CUIT      = elPedido.miUsuario.CUIT;
            unPago.FechaPago = DateTime.Now;

            RegistrarPago(unPago);

            ComprobanteEntidad unComprobante = new ComprobanteEntidad();//

            unComprobante.miTipoComprobante = new TipoComprobanteEntidad();
            unComprobante.miSucursal        = new SucursalEntidad();
            unComprobante.Detalles          = new List <ComprobanteDetalleEntidad>(); //
            ComprobanteCore unManagerComprobante = new ComprobanteCore();             //
            int             ContadorDetalle      = 0;                                 //

            string NroCompSolo = "";
            int    NroComp;

            if (unManagerComprobante.FindAll().Count == 0)
            {
                NroCompSolo = "0";
            }
            //Toma el nro de comprobante y lo desglosa para formar el nuevo nro de comprobante
            if (NroCompSolo != "0")
            {
                NroComp = unManagerComprobante.FindAll().LastOrDefault().NroComprobante;
                var NroCompString = NroComp.ToString();
                NroCompSolo = NroCompString;
                //NroCompSolo = NroCompString.Remove(0, 2);
            }
            NroComp = int.Parse(NroCompSolo) + 1;
            // unComprobante.NroComprobante = int.Parse(logueado.IdCondicionFiscal.ToString() + sucursalId.ToString() + NroComp.ToString());
            unComprobante.NroComprobante        = NroComp;
            unComprobante.miSucursal.IdSucursal = laSucursal.IdSucursal;
            if (elCliente.IdCondicionFiscal == 1)
            {
                unComprobante.miTipoComprobante.IdTipoComprobante = 2;//Factura B
            }
            else if (elCliente.IdCondicionFiscal == 2)
            {
                unComprobante.miTipoComprobante.IdTipoComprobante = 1; //Factura A
            }
            unComprobante.FechaComprobante = DateTime.Now;
            unComprobante.IdPedido         = elPedido.IdPedido;

            foreach (var item in elPedido.misDetalles)
            {
                ComprobanteDetalleEntidad unDetalleComprobante = new ComprobanteDetalleEntidad();
                ContadorDetalle = ContadorDetalle + 1;
                unDetalleComprobante.IdComprobanteDetalle = ContadorDetalle;
                unDetalleComprobante.NroComprobante       = unComprobante.NroComprobante;
                unDetalleComprobante.IdSucursal           = unComprobante.miSucursal.IdSucursal;
                unDetalleComprobante.IdTipoComprobante    = unComprobante.miTipoComprobante.IdTipoComprobante;
                unDetalleComprobante.CUIT                  = ConfigSection.Default.Site.Cuit;
                unDetalleComprobante.miProducto            = new ProductoEntidad();
                unDetalleComprobante.miProducto.IdProducto = item.miProducto.IdProducto;
                unDetalleComprobante.CantidadProducto      = item.Cantidad;
                unDetalleComprobante.PrecioUnitarioFact    = item.PrecioUnitario;

                unComprobante.Detalles.Add(unDetalleComprobante);
            }

            //Cambiar Estado del Pedido en memoria a Pago
            elPedido.Avanzar(false, elPedido.miFormaEntrega.IdFormaEntrega);
            PedidoSetearEstadoDescripEnMemoria(elPedido);

            //Generar factura
            unManagerComprobante.Create(unComprobante);

            //Insertar nuevo estado en BD
            _pedidoEstadoPedidoDal.Insert(new PedidoEstadoPedidoEntidad()
            {
                Fecha          = DateTime.Now,
                IdEstadoPedido = elPedido.VerEstadoActual().IdEstadoPedido,
                IdPedido       = elPedido.IdPedido
            });
        }
예제 #6
0
 public void DetalleCreate(ComprobanteDetalleEntidad e)
 {
     _dalDetalleComprobante.Insert(e);
 }