Exemplo n.º 1
0
        public Boolean GrabarDB(List <in_movi_inve_detalle_x_com_ordencompra_local_detalle_Info> lista, ref string mensaje)
        {
            try
            {
                Boolean res = true;

                res = odata.GrabarDB(lista, ref mensaje);

                int     IdEmpresa     = 0;
                int     IdSucursal    = 0;
                decimal IdOrdenCompra = 0;

                List <in_movi_inve_detalle_Info> listInvMovDet = new List <in_movi_inve_detalle_Info>();
                vwcom_ordencompra_local_det_con_saldo_x_ing_a_inven_Data data = new vwcom_ordencompra_local_det_con_saldo_x_ing_a_inven_Data();
                if (res)
                {
                    foreach (var item in lista)
                    {
                        IdEmpresa     = item.ocd_IdEmpresa;
                        IdSucursal    = item.ocd_IdSucursal;
                        IdOrdenCompra = item.ocd_IdOrdenCompra;
                    }

                    listInvMovDet = data.Get_List_movi_inve_detalle(IdEmpresa, IdSucursal, IdOrdenCompra);

                    var TAgrupacionEstado = from cb in listInvMovDet
                                            group cb by new { cb.IdEstadoRecepcion }
                    into grouping
                        select new { grouping.Key };

                    string IdEstado = "";

                    if (TAgrupacionEstado.Count() == 1)
                    {
                        foreach (var item in TAgrupacionEstado)
                        {
                            IdEstado = item.Key.IdEstadoRecepcion;
                        }
                    }

                    if (TAgrupacionEstado.Count() > 1)
                    {
                        IdEstado = "PEN_X_RECI";
                    }

                    // actualiza cabecera OC con el estado

                    com_ordencompra_local_Data OdataOC = new com_ordencompra_local_Data();

                    com_ordencompra_local_Info info = new com_ordencompra_local_Info();

                    string msg = "";

                    info.IdEmpresa             = IdEmpresa;
                    info.IdSucursal            = IdSucursal;
                    info.IdOrdenCompra         = IdOrdenCompra;
                    info.IdEstadoRecepcion_cat = IdEstado;

                    if (OdataOC.Modificar_Estado_Recep(info, ref msg))
                    {
                    }
                }

                return(res);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GrabarDB", ex.Message), ex)
                      {
                          EntityType = typeof(in_movi_inve_detalle_Bus)
                      };
            }
        }