Exemplo n.º 1
0
 public IHttpActionResult Guardar(BE.Pedidos.PedidosWeb pPedidosWeb)
 {
     if (!ModelState.IsValid)
     {
         DAL.Otros.ClsLog.instancia.EscribirLog("Error en ModelState");
         return(Content(HttpStatusCode.BadRequest, ModelState)); //BadRequest(ModelState);
     }
     try
     {
         DAL.Otros.ClsLog.instancia.EscribirLog("Entrando a guardar");
         BE.Pedidos.PedidosWeb pedidosWeb = CRUDPedidosWeb.instancia.Guardar(pPedidosWeb);
         return(Content(HttpStatusCode.OK, pedidosWeb));
     }
     catch (Exception ex)
     {
         return(Content(HttpStatusCode.InternalServerError, ex.InnerException.Message));
     }
 }
Exemplo n.º 2
0
        public BE.Pedidos.PedidosWeb Guardar(BE.Pedidos.PedidosWeb pPedidosWeb)
        {
            ITransaction transaction = session.BeginTransaction();

            try
            {
                //Persona
                //var persona = session.Get<BE.Pedidos.Personas>(pPedidosWeb.Persona.PERSONASID);
                var persona = session.Query <BE.Pedidos.Personas>().Where(a => a.TIPOSDOCUMENTOID == pPedidosWeb.Persona.TIPOSDOCUMENTOID && a.NRODOCUMENTO == pPedidosWeb.Persona.NRODOCUMENTO).SingleOrDefault();
                if (persona == null)
                {
                    persona = pPedidosWeb.Persona;
                    session.Save(persona);
                    pPedidosWeb.PERSONASID         = persona.PERSONASID;
                    pPedidosWeb.Persona.PERSONASID = persona.PERSONASID;
                }
                else
                {
                    persona = pPedidosWeb.Persona;
                    pPedidosWeb.PERSONASID = persona.PERSONASID;
                    session.Merge(persona);
                }

                //Guardo el pedido
                session.Save(pPedidosWeb);

                //Detalle
                int pedidosWebId = pPedidosWeb.PEDIDOSWEBID;
                foreach (var item in pPedidosWeb.PedidosWebDetalle)
                {
                    var pedidosWebDetalle = session.Get <BE.Pedidos.PedidosWebDetalle>(item.PEDIDOSWEBDETALLEID);
                    if (pedidosWebDetalle == null)
                    {
                        item.PEDIDOSWEBID = pedidosWebId;
                        session.Save(item);
                    }
                }

                //Formas Pago
                foreach (var item in pPedidosWeb.PedidosWebFormaPago)
                {
                    var pedidosWebFormasPago = session.Get <BE.Pedidos.PedidosWebFormasPago>(item.PEDIDOSWEBFORMASPAGOID);
                    if (pedidosWebFormasPago == null)
                    {
                        var tarjetaCupon = item.PedidosWebTarjetasCupones;

                        item.PEDIDOSWEBID = pedidosWebId;
                        session.Save(item);

                        if (tarjetaCupon != null)
                        {
                            tarjetaCupon.PEDIDOSWEBFORMASPAGOID = item.PEDIDOSWEBFORMASPAGOID;
                            session.Save(tarjetaCupon);
                        }
                    }
                }

                //Archivo
                //foreach (var item in pPedidosWeb.PedidosWebArchivos)
                //{
                //    item.PEDIDOSWEBID = pedidosWebId;
                //    session.Save(item);
                //}
                switch (pPedidosWeb.PedidosWebArchivos.ARCHIVO)
                {
                case null:
                    break;

                default:
                    pPedidosWeb.PedidosWebArchivos.PEDIDOSWEBID = pedidosWebId;
                    session.Save(pPedidosWeb.PedidosWebArchivos);
                    break;
                }

                session.Flush();
                transaction.Commit();
                return(pPedidosWeb);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }