Exemplo n.º 1
0
            private static List <ORM_ORD_PRC_DiscountType> Search(Query query, string connectionString, DbConnection connection, DbTransaction transaction)
            {
                CSV2Core.Core.Interfaces.IManagedConnection managedConnection = new CSV2Core_MySQL.MySQLManagedConnection();
                List <ORM_ORD_PRC_DiscountType>             items;

                try
                {
                    managedConnection.set(connectionString, connection, transaction);
                    var loader = new CSV2Core_MySQL.Dictionaries.MultiTable.Loader.DictionaryLoader(managedConnection.getConnection(), managedConnection.getTransaction());

                    DbCommand command = managedConnection.manage(query.CreateSelectQuery(TableName));
                    query.SetParameters(command);

                    items = new List <ORM_ORD_PRC_DiscountType>();

                    var reader = new CSV2Core_MySQL.Support.DBSQLReader(command.ExecuteReader());
                    reader.SetOrdinals(new string[] { "ORD_PRC_DiscountTypeID", "GlobalPropertyMatchingID", "IsDefaultAbsoluteDiscountValue", "IsDefaultRelativeDiscountValue", "DisplayName", "DiscountType_Name_DictID", "OrderSequence", "Creation_Timestamp", "Tenant_RefID", "IsDeleted" });
                    while (reader.Read())
                    {
                        ORM_ORD_PRC_DiscountType item = new ORM_ORD_PRC_DiscountType();
                        //0:Parameter ORD_PRC_DiscountTypeID of type Guid
                        item.ORD_PRC_DiscountTypeID = reader.GetGuid(0);
                        //1:Parameter GlobalPropertyMatchingID of type String
                        item.GlobalPropertyMatchingID = reader.GetString(1);
                        //2:Parameter IsDefaultAbsoluteDiscountValue of type Boolean
                        item.IsDefaultAbsoluteDiscountValue = reader.GetBoolean(2);
                        //3:Parameter IsDefaultRelativeDiscountValue of type Boolean
                        item.IsDefaultRelativeDiscountValue = reader.GetBoolean(3);
                        //4:Parameter DisplayName of type String
                        item.DisplayName = reader.GetString(4);
                        //5:Parameter DiscountType_Name of type Dict
                        item.DiscountType_Name = reader.GetDictionary(5);
                        loader.Append(item.DiscountType_Name, TableName);
                        //6:Parameter OrderSequence of type int
                        item.OrderSequence = reader.GetInteger(6);
                        //7:Parameter Creation_Timestamp of type DateTime
                        item.Creation_Timestamp = reader.GetDate(7);
                        //8:Parameter Tenant_RefID of type Guid
                        item.Tenant_RefID = reader.GetGuid(8);
                        //9:Parameter IsDeleted of type Boolean
                        item.IsDeleted = reader.GetBoolean(9);


                        item.Status_IsAlreadySaved = true;
                        item.Status_IsDirty        = false;
                        items.Add(item);
                    }
                    reader.Close();
                    loader.Load();
                    managedConnection.commit();
                }
                catch (Exception ex)
                {
                    managedConnection.rollback();
                    throw;
                }
                return(items);
            }
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6SO_SHCfCC_1640 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();
            //Put your code here
            CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header receiptHeader = new CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header();
            receiptHeader.Load(Connection, Transaction, Parameter.ReceiptHeaderID);

            var expectedDeliveryHeader = CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header.Query.Search(Connection, Transaction,
                                                                                                      new CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header.Query()
            {
                ORD_PRC_ExpectedDelivery_HeaderID = receiptHeader.ExpectedDeliveryHeader_RefID,
                Tenant_RefID = securityTicket.TenantID,
                IsDeleted    = false
            }).Single();

            expectedDeliveryHeader.ExpectedDeliveryDate   = Parameter.DeliveryDate;
            expectedDeliveryHeader.ExpectedDeliveryNumber = Parameter.DeliveryNumber;
            expectedDeliveryHeader.Save(Connection, Transaction);

            //create bill header
            P_L2BH_SOPSSBH_1515 saveBillHeaderParam = new P_L2BH_SOPSSBH_1515();
            saveBillHeaderParam.CashDiscountInPercent = Parameter.CashDiscountInPercent;
            saveBillHeaderParam.PaymentTargetDate     = Parameter.PaymentTargetTime;

            Guid savedBillHeader = cls_Save_ORD_PRC_SPB_SupplierBill_Header.Invoke(Connection, Transaction, saveBillHeaderParam, securityTicket).Result;

            //create assignment to receipt header
            ORM_ORD_PRC_SPB_SupplierBill_2_ReceiptHeader receiptToSupplierBillHeader = new ORM_ORD_PRC_SPB_SupplierBill_2_ReceiptHeader();

            receiptToSupplierBillHeader.LOG_RCP_Receipt_Header_RefID          = Parameter.ReceiptHeaderID;
            receiptToSupplierBillHeader.ORD_PRC_SPB_SupplierBill_Header_RefID = savedBillHeader;
            receiptToSupplierBillHeader.Tenant_RefID = securityTicket.TenantID;
            receiptToSupplierBillHeader.Save(Connection, Transaction);

            //set IsPriceConditionsManuallyCleared to true
            receiptHeader.IsPriceConditionsManuallyCleared               = true;
            receiptHeader.PriceConditionsManuallyCleared_AtDate          = DateTime.Now;
            receiptHeader.PriceConditionsManuallyCleared_ByAccount_RefID = securityTicket.AccountID;
            receiptHeader.Save(Connection, Transaction);

            #region save discount amounts

            var receiptPosition = CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Position.Query.Search(
                Connection,
                Transaction,
                new CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Position.Query
            {
                Receipt_Header_RefID = Parameter.ReceiptHeaderID,
                Tenant_RefID         = securityTicket.TenantID,
                IsDeleted            = false
            });

            var cashDiscount = EnumUtils.GetEnumDescription(EDiscountType.CashDiscount);

            foreach (var position in receiptPosition)
            {
                var discountType = new CL1_ORD_PRC.ORM_ORD_PRC_DiscountType
                {
                    ORD_PRC_DiscountTypeID   = Guid.NewGuid(),
                    GlobalPropertyMatchingID = cashDiscount.ToString(),
                    Tenant_RefID             = securityTicket.TenantID
                };

                discountType.Save(Connection, Transaction);

                var discountAmount = new CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Position_DiscountAmount
                {
                    LOG_RCP_Receipt_Position_DiscountAmountID = Guid.NewGuid(),
                    ORD_PRC_DiscountType_RefID     = discountType.ORD_PRC_DiscountTypeID,
                    LOG_RCP_Receipt_Position_RefID = position.LOG_RCP_Receipt_PositionID,
                    PositionDiscountValue          = Parameter.CashDiscountInPercent,
                    Tenant_RefID = securityTicket.TenantID
                };

                discountAmount.Save(Connection, Transaction);
            }

            #endregion

            //just returning input header ID
            returnValue.Result = Parameter.ReceiptHeaderID;

            return(returnValue);

            #endregion UserCode
        }