示例#1
0
        public ContenedorOrdenPedidoCompleta LlamarSPCrear(ContenedorOrdenPedidoCompleta nOPC)
        {
            if (ValidarPerfilCUD(nOPC.Retorno.Token))
            {
                var p_OUT_NUMERO = new ObjectParameter("P_OUT_NUMERO", typeof(decimal));
                var p_OUT_CODRET = new ObjectParameter("P_OUT_CODRET", typeof(decimal));
                var p_OUT_GLSRET = new ObjectParameter("P_OUT_GLSRET", typeof(string));

                CapaDato.EntitiesBBDDHostel conex = new CapaDato.EntitiesBBDDHostel();

                conex.SP_CREAR_ENC_PEDIDO
                    (nOPC.Item.Cabecera.RutProveedor
                    , p_OUT_CODRET
                    , p_OUT_GLSRET
                    , p_OUT_NUMERO
                    );
                try
                {
                    nOPC.Item.Cabecera.Numero = decimal.Parse(p_OUT_NUMERO.Value.ToString());
                    nOPC.Retorno.Codigo       = decimal.Parse(p_OUT_CODRET.Value.ToString());
                    nOPC.Retorno.Glosa        = p_OUT_GLSRET.Value.ToString();

                    if (nOPC.Retorno.Codigo == 0 && nOPC.Item.Cabecera.Numero > 0)
                    {
                        bool ErrorAltaDetalle = false;

                        foreach (var item in nOPC.Item.ListaDetalle)
                        {
                            conex.SP_CREAR_DET_PEDIDO
                                (nOPC.Item.Cabecera.Numero
                                , item.RegistroRecepcionPedido.Cantidad
                                , item.RegistroRecepcionPedido.Recepcion
                                , item.RegistroRecepcionPedido.Producto.Codigo
                                , p_OUT_CODRET
                                , p_OUT_GLSRET
                                );
                            //
                            try
                            {
                                nOPC.Retorno.Codigo = decimal.Parse(p_OUT_CODRET.Value.ToString());
                                nOPC.Retorno.Glosa  = p_OUT_GLSRET.Value.ToString();
                            }
                            catch (Exception)
                            {
                                nOPC.Retorno.Codigo = 1021;
                                nOPC.Retorno.Glosa  = "Error alta detalle";
                                ErrorAltaDetalle    = true;
                                break;
                            }
                        }
                        //Logica validacion Detalle
                        if (ErrorAltaDetalle != true)
                        {
                            conex.SP_ACTUALIZAR_ENC_PEDIDO
                                (nOPC.Item.Cabecera.Numero
                                , nOPC.Item.Cabecera.Monto
                                , nOPC.Item.Cabecera.Observaciones
                                , nOPC.Item.Cabecera.Ubicacion
                                , nOPC.Item.Cabecera.Estado
                                , p_OUT_CODRET
                                , p_OUT_GLSRET
                                );
                            try
                            {
                                nOPC.Retorno.Codigo = decimal.Parse(p_OUT_CODRET.Value.ToString());
                                nOPC.Retorno.Glosa  = p_OUT_GLSRET.Value.ToString();
                            }
                            catch (Exception)
                            {
                                nOPC.Retorno.Codigo = 1031;
                                nOPC.Retorno.Glosa  = "Error actualizacion Encabezado";
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    nOPC.Retorno.Codigo = 1011;
                    nOPC.Retorno.Glosa  = "Error creacion Encabezado";
                }
            }
            else
            {
                nOPC.Retorno.Codigo = 100;
                nOPC.Retorno.Glosa  = "Err expiro sesion o perfil invalido";
            }

            return(nOPC);
        }